twisted.web.client.Agent を使用して HTTP リクエストを発行している場合、リクエストで強制的に HTTP 1.0 を使用するにはどうすればよいですか? デフォルトでは、HTTP 1.1 が使用されます。
編集: HTTP 1.0 の使用に興味があるのは、チャンク転送エンコーディングを無効にしたいからです。これを行う最も信頼できる方法は、HTTP 1.0 を使用することです。
twisted.web.client.Agent を使用して HTTP リクエストを発行している場合、リクエストで強制的に HTTP 1.0 を使用するにはどうすればよいですか? デフォルトでは、HTTP 1.1 が使用されます。
編集: HTTP 1.0 の使用に興味があるのは、チャンク転送エンコーディングを無効にしたいからです。これを行う最も信頼できる方法は、HTTP 1.0 を使用することです。
を使いたいならtwisted.web.client.Agent
、モンキーパッチとかしないと無理です。sourceをたどると、次のようなことがわかります。
# In the future, having the protocol version be a parameter to this
# method would probably be good. It would be nice if this method
# weren't limited to issueing HTTP/1.1 requests.
requestLines = []
requestLines.append(
'%s %s HTTP/1.1\r\n' % (self.method, self.uri))
したがって、ハードコードされています。モンキーパッチを適用することでそれを回避できるかもしれませんが、それほど簡単ではありません。
しかし、それは運が悪いという意味ではありません。のみに適用されtwisted.web.client.Agent
ます。そのクラスの使用をやめることができれば、HTTP 1.0 専用の古いコードがまだ残っているようです。特に、これらのクラス/関数を使用すると、HTTP 1.0 を使用しているように見えます。
HTTPPageGetter
HTTPPageDownloader
HTTPClientFactory
HTTPDownloader
getPage
downloadPage
しかし、それらから外れると、(今のところ) 新しい HTTP 1.1 のみの実装を使用することになると思います。