将 cURL 请求翻译成 python
Translating cURL request to python
我必须发出一个向服务器发送信息的 cURL 请求,工作示例请求如下所示:
curl "https://api.XX.com" -u ":test_KayuXJKEdc" -d "name=Sam" -d "address=123 Mockingbird" -d "city=Somewhere"
我试过 pycurl、httplib2 和请求,但我不知道如何正确格式化它。来自许多尝试之一的非工作 pycurl 示例:
import pycurl
user = ':test_KayuXJKEdc'
name = 'name=Sam'
address = 'address=123 Mockingbird'
city = 'city=Somewhere'
c = pycurl.Curl()
data = BytesIO()
c.setopt(c.URL, 'https://api.XX.com')
c.setopt(pycurl.USERNAME, user)
c.setopt(pycurl.POSTFIELDS, name)
c.setopt(pycurl.POSTFIELDS, address)
c.setopt(pycurl.POSTFIELDS, city)
c.setopt(c.WRITEFUNCTION, data.write)
c.perform()
c.close()
result = json.loads(data.getvalue().decode('latin-1'))
print(result)
这几天我进行了大量的搜索和试验。任何帮助是极大的赞赏。谢谢
感谢 Galen 的评论和全新的开始,以下是我最终格式化并使其正常工作的方式:
- 而不是 c.USERNAME 我不得不使用 c.USERPWD。这是一个 API 键
而不是用户名。
- 将不同的数据值重新格式化为:{'name':
'Sam', 'city': 'Somewhere', 等等...}
- 在传递给 c.POSTFIELDS
之前,根据文档使用了 urlencode
我必须发出一个向服务器发送信息的 cURL 请求,工作示例请求如下所示:
curl "https://api.XX.com" -u ":test_KayuXJKEdc" -d "name=Sam" -d "address=123 Mockingbird" -d "city=Somewhere"
我试过 pycurl、httplib2 和请求,但我不知道如何正确格式化它。来自许多尝试之一的非工作 pycurl 示例:
import pycurl
user = ':test_KayuXJKEdc'
name = 'name=Sam'
address = 'address=123 Mockingbird'
city = 'city=Somewhere'
c = pycurl.Curl()
data = BytesIO()
c.setopt(c.URL, 'https://api.XX.com')
c.setopt(pycurl.USERNAME, user)
c.setopt(pycurl.POSTFIELDS, name)
c.setopt(pycurl.POSTFIELDS, address)
c.setopt(pycurl.POSTFIELDS, city)
c.setopt(c.WRITEFUNCTION, data.write)
c.perform()
c.close()
result = json.loads(data.getvalue().decode('latin-1'))
print(result)
这几天我进行了大量的搜索和试验。任何帮助是极大的赞赏。谢谢
感谢 Galen 的评论和全新的开始,以下是我最终格式化并使其正常工作的方式:
- 而不是 c.USERNAME 我不得不使用 c.USERPWD。这是一个 API 键 而不是用户名。
- 将不同的数据值重新格式化为:{'name': 'Sam', 'city': 'Somewhere', 等等...}
- 在传递给 c.POSTFIELDS 之前,根据文档使用了 urlencode