对一个网站的HTTP客户端头方法返回503,但该网站只运行良好(http client head m

2019-10-17 11:56发布

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

Answer 1:

我会通过使用tcpdump的(或WinPcap的Windows中)获得数据包转储开始。 然后,你可以看到两个请求究竟有何不同。 这里发表的差别,如果你仍然无法找出问题。

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


Answer 2:

这造成的任何数量的不同的东西。 基本上你将需要做自己的调查:

  • 检查是否正在使用正确的网址...

  • 检查服务器端的日志。

  • 如果你有浏览器和服务之间的代理或反向代理,请检查请求走多远?

  • 企图夺取请求和应答消息(对于工作和不工作的情况下),并计算出的差异是什么。

  • 试图重现工作(浏览器)的情况下HttpClient库; 即做相同的URL和相同的头一个GET。

  • 等等 ...



文章来源: http client head method against a website returns 503 but the site just runs fine