python http客户端无响应原因及响应状态不正确

2024-07-05 14:44:46 发布

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

我使用python2.6创建一个可以发布XML数据的HTTPS客户端。到目前为止,它可以发布到我编写的HTTP服务器上。问题是,当我试图从响应返回状态和原因时,它是不正确的。在

HTTPS服务器应该返回一个状态为HTTP202的空响应。当我使用curl进行POST时,它正确地返回了我期望的值。HTTPS python客户机返回一个HTTP200和一个空原因。这就好像我正在解析的响应对象不正确或者不是从正确的请求创建的。在

import httplib

def https_client(client_host, client_port, client_key, client_cert, xml_file, client_path)

    headers = {"Content-type" : "application/xml"}

    http_post = httplib.HTTPSConnection(client_host, client_port, client_key, client_cert)
    http_post.request("POST", "/" + client_path, xml_file, headers)
    response1 = http_post.getresponse()
    print response1.status, response1.reason

控制台返回:

^{pr2}$

服务器收到了帖子,就像我之前提到的那样,在使用curl时,我可以获得202状态和可接受的原因。我看到了一些关于读取响应和/或关闭连接的内容,但是我没有找到一个需要这样做的例子。在


Tags: keyhttps服务器clienthttphostport状态
1条回答
网友
1楼 · 发布于 2024-07-05 14:44:46

真正的问题是服务器而不是客户端。发现连接在客户端预期的时间之前终止。这是由于服务器在发送响应之前没有读取传入请求的正文。因为任何原因我都不需要读,所以我忽略了。在

def do_POST(self):
    body = self.rfile.read("0")
    self.send_response(200)
    self.send_header("Content-type", "application/xml")
    self.end_headers()

相关问题 更多 >