简体   繁体   English

Python Request.Post到API不起作用

[英]Python Request.Post to API not working

I am trying to send a simple POST to an api. 我正在尝试将简单的POST发送到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

I keep getting status code 401. 我不断收到状态码401。

Same steps Works fine in POSTMAN. 相同的步骤在POSTMAN中工作正常。

在此处输入图片说明

在此处输入图片说明

Any Ideas/pointers ? 有任何想法/指针吗?

Post data in raw format. 以原始格式发布数据。

payload = "username=;password=;"

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

FWIW, you can click on Code below the Save button on the top right corner of Postman to view code in a couple of languages for your request. FWIW,你可以在代码点击邮差的右上角的保存按钮下面为您的要求一对夫妇的语言来查看代码。

It will only works if the API accepts also JSON body. 仅当API也接受JSON主体时,它才有效。 Otherwise you can use the @Oluwafemi Sule's answer. 否则,您可以使用@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

This code worked for me. 这段代码对我有用。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM