<p>你几乎可以肯定的是被重定向了。PUT请求<em>被发送到</em>,但是服务器用一个<a href="https://en.wikipedia.org/wiki/URL_redirection#HTTP_status_codes_3xx" rel="nofollow noreferrer">3xx redirection response code</a>响应,<code>requests</code>随后对发出GET请求。我注意到wireshark屏幕截图中的路径与代码中使用的路径不匹配(缺少<code>/test</code>前缀),这进一步增加了重定向发生的证据。在</p>
<p>您可以通过查看<code>r.history</code>(每个条目都是另一个响应对象)来检查<a href="http://docs.python-requests.org/en/master/user/quickstart/#redirection-and-history" rel="nofollow noreferrer">redirection history</a>,或者将<code>allow_redirects=False</code>设置为不响应重定向(您将得到第一个响应,其他的都没有)。在</p>
<p>您可能会被重定向,因为您的JSON负载是<em>双编码</em>。对于已经是JSON文档</em>的字符串,不需要使用<code>json.dumps</code>。您正在发送一个JSON字符串,其内容恰好是一个JSON文档。这几乎肯定是错误的。在</p>
<p>请删除<code>json.dumps()</code>调用,或将<code>payload</code><em>字符串</em>替换为<em>字典</em>:</p>
<pre><code>payload = {
"assignee": {
"district": "3",
"phone": "01010001000",
"carNum": "598865"
},
"deduction": {
"min": 1000,
"max": 2000
},
"meta": {
"unit-label": "1-1-1",
"year": "2017",
"quarter": "2"
}
}
</code></pre>
<p>顺便说一句,您最好使用<code>json</code>关键字参数;您将得到<code>Content-Type: application/json</code>头作为附加奖励:</p>
^{pr2}$
<p>同样,这假设<code>payload</code>是一个Python数据结构,<em>不是</em>是Python字符串中的JSON文档。在</p>