Опитвам се да преобразувам моя скрипт на python от издаване на команда curl чрез os.system()
към използване на заявки. Мислех, че ще използвам pycurl, но този въпрос ме убеди в противното. Проблемът е, че получавам грешка, върната от сървъра, която мога да видя, когато използвам r.text (от този отговор), но имам нужда от повече информация. Има ли по-добър начин за отстраняване на грешки в случващото се?
за това, което си струва, мисля, че проблемът се върти около преобразуването на моя флаг --data от curl/pycurl в заявки. Създадох речник на параметрите, които предавах на --data преди. Предполагам, че едно от тях не е валидно, но как мога да получа повече информация, за да знам със сигурност?
пример:
headers2 = {"Accept":"*/*", \
"Content-Type":"application/x-www-form-urlencoded", \
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36", \
"Origin":"https://somedomain.com", \
"X-Requested-With":"XMLHttpRequest", \
"Connection":"keep-alive", \
"Accept-Language":"en-US,en;q=0.8", \
"Referer":"https://somedomain.com/release_cr_new.html?releaseid=%s&v=2&m=a&prev_release_id=%s" % (current_release_id, previous_release_id), \
"Host":"somedomain.com", \
"Accept-Encoding":"gzip,deflate,sdch", \
"Cookie":'cookie_val'}
for bug_id in ids:
print bug_id
data = {'dump_json':'1','releaseid':current_release_id, 'v':'2','m':'a','prev_release_id': previous_release_id,'bug_ids': bug_id, 'set_cols':'sqa_status&sqa_updates%5B0%5D%5Bbugid%5D=' + bug_id + '&sqa_updates%5B0%5D%5Bsqa_status%5D=6'}
print 'current_release_id' , data['releaseid']
print 'previous_release_id', data['prev_release_id']
r = requests.post(post_url, data=json.dumps(data), headers=headers2)
print r.text
Резултатът, който получавам, е доста общо html съобщение, което съм виждал и преди, когато съм запитвал сървъра по грешен начин. Знам, че поне достигам правилния сървър.
Наистина не очаквам никакъв резултат. Това трябва просто да публикува на сървъра и да актуализира поле в DB.