Python请求。发布到API不工作

Python请求。发布到API不工作,python,python-requests,Python,Python Requests,我正在尝试向api发送一篇简单的帖子 import requests url ="http://someapi/v1/auth" payload = {'username': '', 'password': ''} s1 = requests.post(url, headers={"content-type":"application/x-www-form-urlencoded"}, data=json.dumps(payload)) print s1.status_code 我一直得到状

我正在尝试向api发送一篇简单的帖子

import requests
url ="http://someapi/v1/auth"
payload = {'username': '', 'password': ''}
s1 = requests.post(url, headers={"content-type":"application/x-www-form-urlencoded"}, data=json.dumps(payload))  
print s1.status_code
我一直得到状态码401

同样的步骤在《邮递员》中也适用


有什么想法/建议吗

以原始格式发布数据

payload = "username=;password=;"

s1 = requests.post(
    url, 
    headers={"content-type":"application/x-www-form-urlencoded"},
    data=payload)

FWIW,您可以单击邮递员右上角“保存”按钮下方的代码,查看您请求的两种语言的代码。

以原始格式发布数据

payload = "username=;password=;"

s1 = requests.post(
    url, 
    headers={"content-type":"application/x-www-form-urlencoded"},
    data=payload)

FWIW,您可以单击Postman右上角Save按钮下方的代码,查看您请求的两种语言的代码。

仅当API也接受JSON正文时,它才会起作用。 否则,您可以使用@Oluwafemi Sule的答案

import requests
url ="http://someapi/v1/auth"
payload = {'username': '', 'password': ''}
s1 = requests.post(url, headers={"content-type":"application/json"}, data=json.dumps(payload))  
print s1.status_code

只有当API也接受JSON主体时,它才会起作用。 否则,您可以使用@Oluwafemi Sule的答案

import requests
url ="http://someapi/v1/auth"
payload = {'username': '', 'password': ''}
s1 = requests.post(url, headers={"content-type":"application/json"}, data=json.dumps(payload))  
print s1.status_code

这个代码对我有用

import requests
from requests_ntlm import HttpNtlmAuth
payload = "username=;password=;"
s= requests.post(
        "http://someapi/v1/auth", 
        headers={"content-type":"application/x-www-form-urlencoded"},
        data = payload, 
        auth=HttpNtlmAuth('',''))
print s.status_code

这个代码对我有用

import requests
from requests_ntlm import HttpNtlmAuth
payload = "username=;password=;"
s= requests.post(
        "http://someapi/v1/auth", 
        headers={"content-type":"application/x-www-form-urlencoded"},
        data = payload, 
        auth=HttpNtlmAuth('',''))
print s.status_code

401表示未经授权。你有正确的证件吗?我有。Post从POSTMAN开始工作,但在Python中失败。如果您的内容类型为“application/json”,请使用json.dumps。请修复:徒手圆圈不完整。401表示未经授权。你有正确的证件吗?我有。Post从POSTMAN开始工作,但从Python失败。如果您的内容类型为“application/json”,请使用json.dumps。请修复:徒手圆圈不完整。我一直得到“401-未经授权:由于凭据无效,访问被拒绝”。我不知道为什么Python会阻止它。我会做更多的研究。我已经接受了你的回答。@ProgSky,你试过有效载荷=“用户名=&password=”?是的。是的。我继续获得401-未经授权:由于凭据无效,访问被拒绝。我可能必须使用“HttpNtlAuth”与当前用户进行身份验证。使用请求\u ntlm对我有效。我也发布了我的答案。我一直收到“401-未经授权:由于凭据无效,访问被拒绝”。我不知道为什么Python会阻止它。我会做更多的研究。我已经接受了你的回答。@ProgSky,你试过有效载荷=“用户名=&password=”?是的。是的。我继续获得401-未经授权:由于凭据无效,访问被拒绝。我可能必须使用“HttpNtlAuth”与当前用户进行身份验证。使用请求\u ntlm对我有效。我也发布了我的答案。很高兴知道。谢谢你的帖子。很高兴知道。谢谢你的帖子。