获取对HTTPS GET请求的原始、未分析的响应

2024-03-28 10:59:20 发布

您现在位置:Python中文网/ 问答频道 /正文

你将如何获得对HTTPS请求的完全未解析的响应?在

是否有任何HTTP库允许您获取原始响应,或者使用套接字手动构造请求是唯一的方法?在

我特别想看看服务器发送的是什么换行符。在


Tags: 方法httpshttp手动服务器发送
2条回答

这取决于你将如何处理结果。httplib.HTTPSConnectionset_debuglevel方法,该方法允许将响应数据打印到stdout(尽管每行都加了前缀)。出于调试目的,这正是我需要的。不确定,这是你需要的。在

Example from the docs

import socket, ssl, pprint

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# require a certificate from the server
ssl_sock = ssl.wrap_socket(s,
                           # http://curl.haxx.se/ca/cacert.pem
                           ca_certs="cacert.pem",
                           cert_reqs=ssl.CERT_REQUIRED)

ssl_sock.connect(('www.verisign.com', 443))

print repr(ssl_sock.getpeername())
print ssl_sock.cipher()
print pprint.pformat(ssl_sock.getpeercert())

# Set a simple HTTP request   use httplib in actual code.
ssl_sock.write("""GET / HTTP/1.0\r
Host: www.verisign.com\r\n\r\n""")

# Read a chunk of data.  Will not necessarily
# read all the data returned by the server.
data = ssl_sock.read()
print repr(data)[:79]

# note that closing the SSLSocket will also close the underlying socket
ssl_sock.close()

输出

^{pr2}$

Example with M2Crypto

相关问题 更多 >