Этот скрипт, использующий торнадо, получает код ответа http 500 на некоторых живых хостах. Пожалуйста, не обращайте внимания на цикл. Это связано с упрощением моего кода. Я пробовал использовать ip, но безрезультатно.Скрипт Tornado получает код ответа 500 на хост-хосте
#!/usr/bin/python
import tornado
from tornado import httpclient
from tornado import gen
from tornado.httpclient import AsyncHTTPClient
gloop = tornado.ioloop.IOLoop.instance()
@gen.engine
def process(url):
print url
try:
http_client = httpclient.AsyncHTTPClient()
request = tornado.httpclient.HTTPRequest(url=str(url), connect_timeout=5.0, validate_cert = False, request_timeout=5.0, follow_redirects=True)
response = yield tornado.gen.Task(http_client.fetch, request)
print url
print response.code
if response.error: raise Exception(response.error)
except Exception as e:
print e
gloop.add_callback(process, 'http://www.dhlsameday.com')
tornado.httpclient.AsyncHTTPClient.configure("tornado.curl_httpclient.CurlAsyncHTTPClient")
gloop.start()
Просто установите 'validate_cert = False' как параметр для' HTTPRequest'. – matagus
Выполнено, и теперь его внутренняя ошибка 500. – user2862361
Ваш скрипт является HTTP-клиентом. Вы должны обрабатывать ошибки 5xx и 4xx с серверов. – matagus