2013-05-28 3 views
1

Вот мой Оригинальный кодкак преобразовать локон командной строки pycurl код

import urllib, urllib2 
from xml.dom import minidom 

base_url = 'test.com:8000' 
username = 'MyId' 
password = 'passwd' 
search_query = 'search error | head 10' 

# Login and get the session key 
request = urllib2.Request(base_url + '/servicesNS/MyId/search/auth/login', 
data = urllib.urlencode({'username': username, 'password': password})) 

server_content = urllib2.urlopen(request) 

session_key = minidom.parseString(server_content.read()).\ 
getElementsByTagName('sessionKey')[0].childNodes[0].nodeValue 
print "Session Key: %s" % session_key 

# Perform a search 
request = urllib2.Request(base_url + '/servicesNS/MyId/search/search/jobs/export', 
data = urllib.urlencode({'search': search_query,'output_mode': 'json'}), 
headers = { 'Authorization': ('Splunk %s' %session_key)}) 
search_results = urllib2.urlopen(request) 
print search_results.read() 

Это вызывает ошибку 404, так что я решил использовать Curl.

Я это локон воздает

curl -k -u myID:Passwd -d 'search="google.com | head 10"' -d "output_mode=json" https://test.com:8089/servicesNS/myId/search/search/jobs/export 

Я пытаюсь использовать pycurl позвонить Joson.

Как преобразовать его в pycurl?

Заранее спасибо.

+0

Покажите нам свой код - что вы пробовали, что не работает? –

+0

Почему ваш 'base_url' не начинается с' 'http: // ''? И какой из двух запросов 404? – millimoose

+1

ваш код urllib2 и команда curl не совпадают: разные порты, разные запросы. ElementTree обеспечивает более удобный xml api: ['session_key = etree.parse (server_content) .findtext (" .//sessionKey ")'] (http://ideone.com/gGyky4) – jfs

ответ

4

Лучший способ преобразовать локон командной строки к чему-либо, что использует libcurl (как pycurl или другие привязки), чтобы запустить командную строку с «--libcurl output.c», приложенного к нему, а затем проверить, что создано эмбриона, так как он показывает, что нужно делать.

Преобразование этого кода на код pycurl обычно является тривиальным.

Смежные вопросы