Я пытаюсь преобразовать свой скрипт 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-сообщение, которое я видел раньше, когда неправильно запрашивал сервер. Так что я знаю, что я достиг нужного сервера по крайней мере.
Я действительно не ожидаю никакого результата. Это должно просто отправить на сервер и обновить поле в БД.