REST APi的python脚本,使用json,curl工作

时间:2017-12-12 16:47:44

标签: python json rest curl

我想为REST API执行一个python脚本,首先进行身份验证,然后执行get或put,通常使用curl执行以下操作:

curl -i -X POST -d username=admin -d password='pass' -c ./cookies.txt http://ip_address:9080/nbapiemswsweb/login 
curl -v -i -H “Content-Type:application/json” -X GET -b ./cookies.txt 'http://ip_address:9080/nbapiemswsweb/rest/v1/Search/Element'

我正在尝试通过身份验证,但我收到401,然后不知道怎么做GET:

import requests
from requests.auth import HTTPDigestAuth
import json

url = "http://IP_ADDRESS:9080/nbapiemswsweb/login"

myResponse = requests.post(url,auth=HTTPDigestAuth(raw_input("username: "), raw_input("Password: ")), verify=True)
print (myResponse.status_code)

结果

python restapi.py
username: admin
Password: pass
401

我需要得到200并能够获得第二次卷曲

1 个答案:

答案 0 :(得分:0)

您的curl命令只是将用户名和密码作为表单数据发布,而不是作为授权标题发布。

requests执行相同操作,并使用session object处理Cookie的捕获和发送:

with requests.Session() as session:
    formdata = {
        'username': raw_input("username: "),
        'password': raw_input("Password: "),
    }
    myResponse = session.post(url, data=formdata, verify=True)

    second_response = session.get('http://IP_ADDRESS:9080/nbapiemswsweb/rest/v1/Search/Element')