根据http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3客户端在POST(在需要此头的HTTP 1.1服务器上)之前必须等待100(继续)状态。HTTP 1.1期望头握手
我不明白Python如何做到这一点。例如:
conn = httplib.HTTPConnection(url)
conn.putrequest('POST', page)
conn.putheader(...)
conn.putheader('Expect', '100-continue')
conn.endheaders()
现在,我看不出有其他选项,然后发送数据:
conn.send(data)
在这种情况下,我得到的错误,请求响应时:
error: [Errno 10053] An established connection was aborted by the software in your host machine
我怎么能要求状态100,以便我可以发送数据?
我不认为'httplib'支持这一(非常好);请参阅[this' requests' ticket](https://github.com/kennethreitz/requests/issues/713)中的讨论(特别是*,并且可以以打破httplib *备注的方式尽早关闭套接字)。 – 2013-03-22 11:54:27
如果您读取异常消息,您将看到连接已中止。网络好吗?你拉了网线吗?有DPI的防火墙可以阻止POST POST请求吗? – 2013-03-22 11:56:51
我想我们不能期望在这种情况下有意义的例外。我对我的网络没有任何问题,例如Java中的相同代码按预期工作。 – theta 2013-03-22 11:59:50