我使用apache httpdefault客户端并执行post函数,如下所示
HttpResponse imToken = httpClient.execute(httpPostIM);得到的响应是
HTTP/1.1 100 Continue
Connection: keep-alive然后是:
HTTP/1.1 200 OK
Date: Tue, 30 Aug 2011 19:11:35 GMT我们如何从客户端处理这个问题??
发布于 2011-08-31 04:17:30
下面是response 100 from w3的定义,下面是what the response looks like的一个很好的示例。引述如下:
客户端应继续其请求。此临时响应用于通知客户端已收到请求的初始部分,并且尚未被服务器拒绝。客户端应该继续发送请求的其余部分,或者,如果请求已经完成,则忽略此响应。服务器必须在请求完成后发送最终响应。有关此状态代码的使用和处理的详细讨论,请参见第8.2.3节。
因此,如果您的客户端已经发送了整个请求,那么它应该等待服务器发出200或其他“最终”响应。
根据Apache HttpClient代码,您无需执行任何操作,因为客户端会忽略所有1XX响应代码,并继续查找最终响应。这是来自HttpMethodBase类中的commons-httpclient-3.1
if ((status >= 100) && (status < 200)) {
if (LOG.isInfoEnabled()) {
LOG.info("Discarding unexpected response: " +
this.statusLine.toString());
}
this.statusLine = null;
}如果您没有看到此行为,那么您可能需要增加客户端超时时间。也许它等待的时间还不够长?
https://stackoverflow.com/questions/7249210
复制相似问题