質問を明確にするために3回試みた後でも、ここで何を尋ねているのかまだ明確ではありません.
最初に、 を持たない をr = requests.put(url, data = string)
返しますが、、および0 以上のリダイレクト リクエストの を持ちます。これらはすべてオブジェクトであり、属性を持ちます。Response
body
request
history
PreparedRequest
body
一方、 を実行するr.requests.Request(method='PUT', url=url, data=string)
と、 a が返さRequest
れますprepare()
。これは、本体を持つ前に d にする必要があります。
いずれにせよ、簡単なテストを行って結果を見ると、body
常に正しいことがわかります。
>>> resp = requests.put('http://localhost/nosuchurl', data='abc')
>>> resp.request.body
'abc'
>>> resp = requests.put('http://localhost/redirect_to_https', data='abc')
>>> resp.history[-1].request.body
'abc'
>>> req = requests.Request(method='PUT', url='http://localhost/nosuchurl', data='abc')
>>> preq = req.prepare()
>>> preq.body
'abc'
私の最善の推測は、あなたが見ている必要があるということですがresp.history[0].request.body
、あなたが見ているのはresp.request.body
、または同様のものです。
クイックスタート チュートリアルのリダイレクトと履歴が役に立たない場合は、詳細な API ドキュメントを読むか、理解できるまですべてを試してみてください。
または、次のようにします。
resp = request.put('http://localhost/nosuchurl', data='abc', allow_redirects=False)
次に、リダイレクト処理を手動で行います。