针对网站的http客户端头方法返回503,但网站运行正常

时间:2012-12-17 22:54:16

标签: java http httpclient http-status-codes

我们使用以下代码从我们的客户端应用程序与我们的网站交谈,出于某种原因,我们总是返回状态代码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();

2 个答案:

答案 0 :(得分:1)

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

tcpdump -n -s 1000 -A port 80 and host {hostname}

答案 1 :(得分:0)

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

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

  • 检查服务器端日志。

  • 如果您在浏览器和服务之间有代理或反向代理,请检查请求的距离......

  • 尝试捕获请求并回复消息(对于有效且无效的情况),并找出差异所在。

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

  • 依此类推......