我正在编写一个python脚本来尝试使用API访问Web服务。遗憾的是,API文档缺少有关如何发出请求的一些细节和示例。
我已经能够使用curl发出请求了,现在我想使用python来发出请求。我正在使用python 2.7.5并使用请求模块访问结束。
请注意,这似乎是获取请求而非邮寄请求。
下面是我的curl命令,它可以正常工作
curl -k -s --cookie-jar session_cookie "https://example.com8001?\{\"request\":\"login\",\"data\":\{\"login\":\"user-account\",\"password\":\"super-secret-password\"\}\}"
当我尝试在python中翻译它并使用字典时,我有以下内容:
#!/usr/bin/python
import json
import logging
import socket
import requests
import urllib
import os
## Stop bugging me about insecure stuff
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
logging.basicConfig(level=logging.DEBUG)
username = "user-account"
password = "super-secret-password"
custom_headers = {'Content-Type': 'application/json'}
server = socket.gethostname()
port = "8001"
spurl = "https://%s:%s" % (server, port)
spurl2 = 'https://%s:%s?{"request":"login","data":{"login":"user-account","password":"super-secret-password"}}'% (server, port)
r1 = requests.get(spurl2, headers=custom_headers, verify=False)
现在,如果我手工制作网址,但我不想这样做,效果会很好。知道如何将字典对象转换为内联json请求吗?
提前致谢。
-Nigel