1

we are using the following code to talk to our website from our client side app, for some reason, we always get back status code of 503. but then when we manually load the site from browser, it just loads find. anything could be wrong with the code? or is there any special setting on server side that could cause this problem?

        // 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();
4

2 回答 2

1

我将首先使用 tcpdump(或 windows 中的 winpcap)来获取数据包转储。然后您可以确切地看到这两个请求有何不同。如果您仍然无法解决问题,请在此处发布差异。

tcpdump -n -s 1000 -A port 80 and host {hostname}
于 2012-12-17T22:57:48.147 回答
0

这是由许多不同的事情引起的。基本上,您将需要进行自己的调查:

  • 检查您是否确实使用了正确的 URL ...

  • 检查服务器端日志。

  • 如果您在浏览器和服务之间有代理或反向代理,请检查请求到达多远...

  • 尝试捕获请求和回复消息(对于有效和无效的情况)并找出差异是什么。

  • 尝试重现 HttpClient 库的工作(浏览器)案例;即使用相同的 URL 和相同的标头执行 GET。

  • 等等 ...

于 2012-12-17T23:12:09.063 回答