0

twisted.web.client.Agent を使用して HTTP リクエストを発行している場合、リクエストで強制的に HTTP 1.0 を使用するにはどうすればよいですか? デフォルトでは、HTTP 1.1 が使用されます。

編集: HTTP 1.0 の使用に興味があるのは、チャンク転送エンコーディングを無効にしたいからです。これを行う最も信頼できる方法は、HTTP 1.0 を使用することです。

4

1 に答える 1

1

を使いたいなら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 のみの実装を使用することになると思います。

于 2014-12-07T23:32:06.173 に答える