我们使用以下代码从我们的客户端应用程序与我们的网站交谈,出于某种原因,我们总是返回状态代码503.但是当我们从浏览器手动加载网站时,它只是加载查找。代码有什么问题吗?或者服务器端是否有任何特殊设置可能导致此问题?
// the head method
httphead = new HttpHead(url);
httphead.getParams().setParameter("http.socket.timeout", this.socketTimeout);
httphead.getParams().setParameter("http.protocol.cookie-policy", CookiePolicy.IGNORE_COOKIES);
HttpResponse response = this.httpClient.execute(httphead);
statusCode = response.getStatusLine().getStatusCode();
答案 0 :(得分:1)
我首先使用tcpdump(或windows中的winpcap)来获取数据包转储。然后,您可以确切地看到两个请求的不同之处。如果您仍然无法找出问题,请在此处发布差异。
tcpdump -n -s 1000 -A port 80 and host {hostname}
答案 1 :(得分:0)
这是由许多不同的事情引起的。基本上你需要自己进行调查:
检查您是否确实使用了正确的网址...
检查服务器端日志。
如果您在浏览器和服务之间有代理或反向代理,请检查请求的距离......
尝试捕获请求并回复消息(对于有效且无效的情况),并找出差异所在。
尝试重现HttpClient库的工作(浏览器)案例;即使用相同的URL和相同的标题进行GET。
依此类推......