您的位置:首页 > 理论基础 > 计算机网络

关于jemeter调接口遇到的HTTP500内部服务器错误

2017-12-25 12:16 225 查看


HTTP500内部服务器错误

标签: HTTP500服务器内部错误
2017-04-18 11:36 2605人阅读 评论(0) 收藏 举报


 分类:

Http

版权声明:本文为博主原创文章,未经博主允许不得转载。

目录(?)[+]


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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: