更新された回答
以下の回答は、2.9.2 より前のバージョンに関するものです。バージョン 2.9.2 (2016 年 4 月頃) 以降、 を使用するOrderedDict
と再び動作します。
古い答え
組み込み機能だけを使用して、少し前に可能だったようです ( issue 179 )。もうないと思います (問題 2057 )。その理由の 1 つはnum1による別のコメントで言及されています。次の解決策/回避策を使用しました。
import requests
import collections
class SortedHTTPAdapter(requests.adapters.HTTPAdapter):
def add_headers(self, request, **kwargs):
request.headers = collections.OrderedDict(
((key, value) for key, value in sorted(request.headers.items()))
)
session = requests.Session()
session.mount("http://", SortedHTTPAdapter())
この例では、ヘッダーは単に並べ替えられていますが、任意の方法で並べ替えることができます。requests
コードを調べてメソッドのドキュメント文字列を読んだ後、そのメソッドを選択しました。
接続に必要なヘッダーを追加します。v2.0 の時点では、これはデフォルトでは何もしませんが、
HTTPAdapter <requests.adapters.HTTPAdapter>
クラスをサブクラス化するユーザーによるオーバーライドのために残されています。
send
絶対的な制御のために、おそらくメソッドをオーバーライドできます。