2

http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3によると、クライアントはPOSTを実行する前に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を要求するにはどうすればよいですか?

4

1 に答える 1

3

私はこれをサポートしていないと思いhttplibます(非常によく)。特に、このリクエストチケットの説明を参照してください

httplibを壊すような方法でソケットを早期に閉じることができます

そのコメントの作者であるAugieFackler(durin42)も、彼自身のhttpplusライブラリについて言及しています。

ソースコードを一目見ただけで、正しく処理できることがわかります。Expect: 100-Continue

# handle 100-continue response
hdrs, body = self.raw_response.split(self._end_headers, 1)
http_ver, status = hdrs.split(' ', 1)
if status.startswith('100'):
    self.raw_response = body
    self.continued = True
    logger.debug('continue seen, setting body to %r', body)
    return
于 2013-03-22T12:33:14.573 に答える