这是一个发送post请求的工具类,在本地可以正常获取到返回的数据,上传到服务器后,无法获取到数据,而且日志记录显示未发生异常
public static JSONObject doPost(String url,JSONObject json){
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
JSONObject response = null;
try {
StringEntity s = new StringEntity(json.toString());
s.setContentEncoding("UTF-8");
s.setContentType("application/json");//发送json数据需要设置contentType
post.setEntity(s);
HttpResponse res = client.execute(post);
if(res.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
String result = EntityUtils.toString(res.getEntity());// 返回json格式:
logger.info("result:"+result);
response = JSON.parseObject(result);
}
} catch (Exception e) {
logger.error("error:"+e.getMessage());
e.printStackTrace();
}
logger.info("请求结束");
return response;
}
是对面服务器发生异常,然后直接给我返回的404
建议在服务上用 curl 命令测试一下
囧,Windows服务器,说出来我都害羞⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄
@杜晓洋: Windows上安装git bash就可以运行curl命令
@dudu: curl http://test.rm-tech.com.cn/platform/cloudplatform/api/trade.html
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 42 0 42 0 0 893 0 --:--:-- --:--:-- --:--:-- 893{"errMsg":"系统异常。","errCode":"1"}
正常返回数据
@杜晓洋: 可以在代码中将404的响应内容打印出来
@dudu: INFO:2018-02-09 10:56:26,320 - entityContentLength:0
ERROR:2018-02-09 10:56:26,320 - 请求错误:http://test.rm-tech.com.cn/platform/cloudplatform/api/trade.html--状态码:404
ERROR:2018-02-09 10:56:26,320 - 信息:
INFO:2018-02-09 10:56:26,320 - result :
1111111111
@dudu: 111111111是我后加的,要不评论不了,提示评论不可为空,这是博客园的一个小bug吧
@杜晓洋: 建议用WireShark抓包看看程序中究竟发出的是什么http请求
@dudu: 谢谢您的帮助,我已经解决啦,是对面服务器发生异常,然后直接给我返回的404
状态码404,建议从网络上找原因,服务器上ping一下那个url呢,或用POST工具测试一下那个url
可以ping通
谢谢您的帮助,我已经解决啦,是对面服务器发生异常,然后直接给我返回的404
既然是404说明网络是通的
那么可能真的是404了
你看下是不是参数和本地使用的不一样
使用和本地完全一样的url测试一下才行
地址和参数都一样,没什么区别,我比较了一下
@杜晓洋: 那么请参考一楼的回答
@刘宏玺: 哦哦,好的,谢谢您来帮助我
谢谢您的帮助,我已经解决啦,是对面服务器发生异常,然后直接给我返回的404
404 错误是一个比较容易排查的错误了,服务器就算是Windows了怎么了,还有IE呢。
必须是一个愚蠢的错误,不需要在这儿问的,你只要停下来,静下心,就能找出问题所在的。
社区反而帮不上啥忙。
我是去链接的别人的服务器,有原因我也不太好排查
@杜晓洋: 404 并不需要你拥有对方服务器得权限才能排查,毕竟你在开发机上是不会404的。
@爱编程的大叔: 谢谢您的帮助,我已经解决啦,是对面服务器发生异常,然后直接给我返回的404
返回的状态码是多少?
– dudu 6年前@dudu: 404
– 杜晓洋 6年前@dudu: 本地和服务器访问的网址都是一样的
– 杜晓洋 6年前