使用"tornado.httpclient"抓取"POST https"网站获取"HTTPError: HTTP 599"



我想使用"tornado.httpclient. "AsyncHTTPClient"发送一个"POST"请求到一个"https"网站,但是得到:

HTTPError: HTTP 599: [Errno 1] _ssl.c:503: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed  

它工作时,我使用"urllib"代替(相同的url和参数,头我不知道)
代码如下:

url = r'https://**********.com/****/'
request = tornado.httpclient.HTTPRequest(url = url, method = 'POST', body = body, headers = headers)
client = tornado.httpclient.AsyncHTTPClient()
client.fetch(request, callback = on_reqeust)
tornado.ioloop.IOLoop.instance().start()
request = tornado.httpclient.HTTPRequest(url=url, method='POST', body=body,
                                         validate_cert=False)

添加"validate_cert=False"当生成http请求
似乎没有必要使用curl_httpclient:

#tornado.httpclient.AsyncHTTPClient.configure("tornado.curl_httpclient.CurlAsyncHTTPClient")

也可以更新SimpleAsyncHTTPClient使用的CA证书文件。它应该位于

site-packages/tornado/ca-certificates.crt

在我的情况下,复制文件/etc/ssl/certs/ca-certificates.crt到龙卷风位置解决了问题。

注意:如果你有有效的证书,但你的证书颁发机构不被龙卷风认可,这将有助于。

相关内容

  • 没有找到相关文章

最新更新