连接在python请求中不是持久的

时间:2014-02-03 21:31:08

标签: python wireshark python-requests

我正在制作一个包含大约12MB正文数据的流式POST请求。一旦这个请求完成,我打算在同一个TCP连接上发送另一个POST请求。但是,我没有看到它发生在同一个TCP连接上。它发生在另一个TCP连接上(根据Wireshark)。根据我对herehere的理解,情况并非如此。这是片段:

# First POST request without Auth info
with open(file) as f:
    r = requests.post(url, data=f, headers=h)

# Second POST request with Auth info
r = requests.post(url, headers=h)

然后我尝试使用session object,但是,在这种情况下,我没有在Wireshark上看到第二个POST请求(作为第二个POST方法)。它实际上被附加在第一个流POST数据的末尾:

# First POST request without Auth info
s = requests.session()
with open(file) as f:
    r = s.post(url, data=f, headers=h)

# Second POST request with Auth info
r = s.post(url, headers=h)
  

SPBWZKSCM3RJQAKKC0B7UQ1DIRDWHPBXDYMTUPODQ4TFAFPZTQFMY6Q2SIY6ZET8W6BD4889Z69WMO7UIKQOZB22BOBQ1TH2EUUOOSQJA8B0Y *** POST / HTTP / 1.1   内容长度:***

所以,我有以下问题:

  1. 为什么第一种情况不起作用?
  2. 在第二种情况下,为什么POST会被附加到之前的流媒体POST?
  3. 感谢。

0 个答案:

没有答案