翻譯我想知道我怎麼能翻譯下面的curl命令到Python:HOW TO curl命令到Python
捲曲-G -H 「接受:應用/ JSON」 'http://mydomain.com:8080/experimental/events' --data-進行urlencode '查詢= [ 「=」, 「certname」, 「MYSERVER」]'
我嘗試以下2個選項(1:使用httlib和2:使用的urllib2):
方法1:使用httlib
import httplib, urllib
connection = httplib.HTTPConnection('mydomain.com', 8080)
headers = {'Content-type': 'application/json'}
values = {"query": "['=', 'certname', 'myserver']"}
data = urllib.urlencode(values)
connection.request('POST', '/experimental/events', data, headers)
response = connection.getresponse()
它不工作但如果我不無數據(用urlencode)一個簡單的請求它的工作原理如 connection.request( 'POST', '/事實/ MYSERVER' ,無,頭)
說明: '/實驗/事件' 需要--data-進行urlencode而是 '/事實/ MYSERVER' 不需要--data-進行urlencode
選項2:使用的urllib2
import urllib2, urllib
values = {"query": "['=', 'certname', 'myserver']"}
data = urllib.urlencode(values)
url_path = "http://mydomain.com:8080/experimental/events"
server_request = urllib2.Request(url_path, data)
server_request.add_header('Content-type', 'Accept: application/json')
server_response = urllib2.urlopen(server_request)
它不工作但同樣,如果我做無數據(用urlencode)一個簡單的請求,諸如 url_path它工作= 「http://mydomain.com:8080/facts/myserver」,然後 server_request = urllib2.Request(url_path)
筆記:'/實驗/事件'的需求 - 數據urlencode但'事實/ myserver'不需要 - 數據urlencode
我與這種--data-urlencode'查詢= [「=」,「certname」,「myserver」]'
任何幫助,非常感謝!
您是否嘗試過打印'data'字符串以查看它是否看起來如何?你也許可以捲曲來甩它。 –