网页500错误怎么解决_系统报500错误解决方法

网页500错误怎么解决_系统报500错误解决方法1.问题描述2.问题解决3.HTTP请求代码1.问题描述1.使用http方式请求对方服务器,返回JSON格式数据2.由于是测试环境,网段不是同一个,对方服务器网段做了代理,我们能ping通,也能telnet3.使用浏览器访问能正常返回JSON格式数据4.用代码解析http请求一直报500错误,对方觉得是我们代码问题,但是我们用代码解析公网上的一些请求是正常的;而且…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.问题描述

1.使用http方式请求对方服务器,返回JSON格式数据
2.由于是测试环境,网段不是同一个,对方服务器网段做了代理,我们能ping通,也能telnet
3.使用浏览器访问能正常返回JSON格式数据
4.用代码解析http请求一直报500错误,对方觉得是我们代码问题,但是我们用代码解析公网上的一些请求是正常的;而且我们将代码发给对方,让对方解析,也是正常的

2.问题解决

由于我们本地看不出什么问题,我们用代码请求,让对方服务器进行抓包调试。
1.对方服务器让我们将请求的Content-Type改为application/json,请求仍然有问题
Error-Reason:CHARACTER:error="json"; error_description*=UTF-8''Expected one of: <<{,[>> but got: <<C>>
2.对方查了下,发现服务器Content-Type填什么都报错,application/x-www-form-urlencoded、application/json都报错,只有不填才能正确,空串也不行;我们就说http请求头有个默认值就是x-www-form-urlencoded,对方服务器端改了这个Content-Type的请求头,我们代码就能正常访问到JSON数据了

3.HTTP请求代码

public static String sendGet(String url, String param) {  
       String result = "";
       BufferedReader in = null;
       try {
           String urlName = url + "?" + param;
           URL realUrl = new URL(urlName);
           // 打开和URL之间的连接
           URLConnection conn = realUrl.openConnection();
           // 设置通用的请求属性
           conn.setRequestProperty("accept", "*/*");
           conn.setRequestProperty("connection", "Keep-Alive");
           conn.setRequestProperty("user-agent",
                   "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
           // 建立实际的连接
           conn.connect();
           // 获取所有响应头字段
           Map<String, List<String>> map = conn.getHeaderFields();
           // 遍历所有的响应头字段
           for (String key : map.keySet()) {
               System.out.println(key + "--->" + map.get(key));
           }
           // 定义BufferedReader输入流来读取URL的响应
           in = new BufferedReader(
                   new InputStreamReader(conn.getInputStream(),"UTF-8"));
           String line;
           while ((line = in.readLine()) != null) {
               result += line;
           }
       } catch (Exception e) {
           System.out.println("发送GET请求出现异常!" + e);
           e.printStackTrace();
       }
       // 使用finally块来关闭输入流
       finally {
           try {
               if (in != null) {
                   in.close();
               }
           } catch (IOException ex) {
               ex.printStackTrace();
           }
       }
       return result;
   }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169815.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月12日 下午7:00
下一篇 2022年8月12日 下午7:00


相关推荐

  • C语言scanf函数详细解释

    C语言scanf函数详细解释nbsp 函数名 scanf 功能 执行格式化输入用法 intscanf char format argument scanf 函数是通用终端格式化输入函数 它从标准输入设备 键盘 读取输入的信息 可以读入任何固有类型的数据并自动把数值变换成适当的机内格式 其调用格式为 nbsp nbsp nbsp nbsp nbsp scanf scanf 函数返回成功赋值的数据项数

    2026年3月20日
    2
  • kettle教程二

    kettle教程二转载:http://www.cnblogs.com/limengqiang/archive/2013/01/16/KettleApply2.html1、应用场景这里简单概括一下几种具体的应用场景,按网络环境划分主要包括:表视图模式:这种情况我们经常遇到,就是在同一网络环境下,我们对各种数据源的表数据进行抽取、过滤、清洗等,例如历史数据同步、异构系统数据交互、数据对称发布或备份等都归属于这…

    2022年5月23日
    66
  • java对象复制和属性值复制工具类[通俗易懂]

    java对象复制和属性值复制工具类[通俗易懂]两个不同类型的对象中有字段名称不区分大小写的情况下一样,字段含义一样,需要组装到另一个对象中去,然后就写了一个这种工具类我的类型比较特殊,老系统和新系统的对象命名大小写命名不一致,并且字段相同类型也有不一致的情况,所以自己写了一个,不是很完美基本能用。温馨提示:如果同一种类型的对象属性字段名equals相等并且类型一致。则完全可以用commons-beanutils包或者spring包

    2022年10月3日
    6
  • SourceInsight注册码「建议收藏」

    SourceInsight注册码「建议收藏」版本:注册码:SI3US-361500-17409

    2022年10月4日
    5
  • 在Pandas中,如何根据Group By 结果计算 Row Number

    在Pandas中,如何根据Group By 结果计算 Row Number例如我们有下面的数据,第一列是用户的ID,第二列是用户的购买日期,现在如果我们需要判断用户是否重复购买,并且,每一次的购买,下一次的购买时间间隔是多少呢?

    2022年5月4日
    81
  • Android Protobuf应用及原理「建议收藏」

    Android Protobuf应用及原理

    2022年3月13日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号