使用HttpURLConnection 返回 Server returned HTTP response code: 500问题

a12136 2017-07-22 12:39:37
try {

// 创建SSLContext对象,并使用我们指定的信任管理器初始化
TrustManager[] tm = { new MyX509TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());
// 从上述SSLContext对象中得到SSLSocketFactory对象
SSLSocketFactory ssf = sslContext.getSocketFactory();

URL url = new URL(requestUrl);
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setSSLSocketFactory(ssf);
conn.setRequestMethod(requestMethod);
conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
// 设置请求方式(GET/POST)

// 当outputStr不为null时向输出流写数据
if (null != outputStr) {
OutputStream outputStream = conn.getOutputStream();
// 注意编码格式
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}

// 从输入流读取返回内容
InputStream inputStream = conn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String str = null;
StringBuffer buffer = new StringBuffer();
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);

程序执行到InputStream inputStream = conn.getInputStream();抛出异常
java.io.IOException: Server returned HTTP response code: 500
...全文
9222 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_28573739 2017-07-23
  • 打赏
  • 举报
回复
引用 7 楼 hanpoyangtitan 的回复:
[quote=引用 6 楼 a12136 的回复:] [quote=引用 3 楼 hanpoyangtitan 的回复:] 先用浏览器先访问下看看资源是否能正常访问,如果能正常访问的话再看你的http header和 body 传的是不是有问题。
传的json数据 {"sendTm":20170622143457,"courierMobile":"18911814587","latitude":"39.90056134441421","receiverMobile":"18310325519","sign":"N2U0NDQ1M2UYNTNKOGRKNZMWNDI4MMU1MGEZZDQ3MZU=","messageId":"d11d1ab5-9f6a-4659-ac15-cc90fcc800e9","pickTm":20170622144500,"appKey":"rrs-huaweiimax-v1","state":"0","position":"北京市北京市朝阳区北京恒润商务中心8层北京恒润商务中心8层1478","getCode":"","expressId":"3904880098620","longitude":"116.46648726507536"} ==== outputStream.write(outputStr.getBytes("UTF-8")); outputStr 就是上面的json数据 感觉这好像有问题[/quote] 你用post提交应该设置header content-type application/x-www-form-urlencoded[/quote] 我传json数据不是设置成这个吗 connection.setRequestProperty("Content-Type", "application/json");
什么都不能 2017-07-22
  • 打赏
  • 举报
回复
引用 6 楼 a12136 的回复:
[quote=引用 3 楼 hanpoyangtitan 的回复:] 先用浏览器先访问下看看资源是否能正常访问,如果能正常访问的话再看你的http header和 body 传的是不是有问题。
传的json数据 {"sendTm":20170622143457,"courierMobile":"18911814587","latitude":"39.90056134441421","receiverMobile":"18310325519","sign":"N2U0NDQ1M2UYNTNKOGRKNZMWNDI4MMU1MGEZZDQ3MZU=","messageId":"d11d1ab5-9f6a-4659-ac15-cc90fcc800e9","pickTm":20170622144500,"appKey":"rrs-huaweiimax-v1","state":"0","position":"北京市北京市朝阳区北京恒润商务中心8层北京恒润商务中心8层1478","getCode":"","expressId":"3904880098620","longitude":"116.46648726507536"} ==== outputStream.write(outputStr.getBytes("UTF-8")); outputStr 就是上面的json数据 感觉这好像有问题[/quote] 你用post提交应该设置header content-type application/x-www-form-urlencoded
a12136 2017-07-22
  • 打赏
  • 举报
回复
引用 3 楼 hanpoyangtitan 的回复:
先用浏览器先访问下看看资源是否能正常访问,如果能正常访问的话再看你的http header和 body 传的是不是有问题。
传的json数据 {"sendTm":20170622143457,"courierMobile":"18911814587","latitude":"39.90056134441421","receiverMobile":"18310325519","sign":"N2U0NDQ1M2UYNTNKOGRKNZMWNDI4MMU1MGEZZDQ3MZU=","messageId":"d11d1ab5-9f6a-4659-ac15-cc90fcc800e9","pickTm":20170622144500,"appKey":"rrs-huaweiimax-v1","state":"0","position":"北京市北京市朝阳区北京恒润商务中心8层北京恒润商务中心8层1478","getCode":"","expressId":"3904880098620","longitude":"116.46648726507536"} ==== outputStream.write(outputStr.getBytes("UTF-8")); outputStr 就是上面的json数据 感觉这好像有问题
a12136 2017-07-22
  • 打赏
  • 举报
回复
引用 2 楼 pany1209 的回复:
java.io.IOException: Server returned HTTP response code: 500服务端代码出错了。。。。 可以在前面使用getResponseCode()判断状态码是不是200。。。
conn.getResponseCode() 返回的code是500, 但是我用postman工具请求返回正常啊
a12136 2017-07-22
  • 打赏
  • 举报
回复
引用 1 楼 cqrf2006 的回复:
requestUrl 对应的服务器报错了,查查错误日志。
浏览器访问url是正确的
什么都不能 2017-07-22
  • 打赏
  • 举报
回复
先用浏览器先访问下看看资源是否能正常访问,如果能正常访问的话再看你的http header和 body 传的是不是有问题。
李德胜1995 2017-07-22
  • 打赏
  • 举报
回复
java.io.IOException: Server returned HTTP response code: 500服务端代码出错了。。。。 可以在前面使用getResponseCode()判断状态码是不是200。。。
feng00~ 2017-07-22
  • 打赏
  • 举报
回复
requestUrl 对应的服务器报错了,查查错误日志。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧