Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决HTTP Post请求Python中的状态401?_Python_Http_Python Requests_Http Headers_Http Authentication - Fatal编程技术网

如何解决HTTP Post请求Python中的状态401?

如何解决HTTP Post请求Python中的状态401?,python,http,python-requests,http-headers,http-authentication,Python,Http,Python Requests,Http Headers,Http Authentication,我正在尝试用Python发出http post请求。我要发布到的http需要授权。为了安全起见,我替换了真实的url、数据和授权。当我使用正确的url、数据体和授权运行下面的代码时,我得到了状态401。这意味着授权不正确。是否有其他方法可以向http post请求中添加授权、头和正文,以使post成功?授权密码是正确的,可以在Postman中使用,所以它的内容不是问题所在——我想知道格式是否正确。提前谢谢 import requests from requests.auth import HTT

我正在尝试用Python发出http post请求。我要发布到的http需要授权。为了安全起见,我替换了真实的url、数据和授权。当我使用正确的url、数据体和授权运行下面的代码时,我得到了状态401。这意味着授权不正确。是否有其他方法可以向http post请求中添加授权、头和正文,以使post成功?授权密码是正确的,可以在Postman中使用,所以它的内容不是问题所在——我想知道格式是否正确。提前谢谢

import requests
from requests.auth import HTTPBasicAuth
    
    def post():
            url = 'http://somelongurl'
            headers = {'Content-Type': 'application/json'}
            auth = HTTPBasicAuth('Authorization', 'PASSWORD')
            data = {"ProductID" : "ABCDEFG",
                    "ClientID": "10000",
                    "SerialNumber": "1234567890"}
            req = requests.post(url, headers=headers, data=data, auth=auth)
            return req

通过在标题中包含授权并将数据更改为json类型,解决了这一问题,如下所示:

不同的门户可能使用不同的方法,因此如果没有真实的url或文档链接,很难回答此类问题。如果您在
postman
中有可用的解决方案,那么您可以使用
postman
中的特殊函数来生成不同语言的代码—它还可以为python生成代码。邮递员文档:如果您在
reaquests
中使用
json=
,那么它应该自动添加带有
application/json