1

我正在尝试使用 HTTP POST-request 将两个参数发布到http://foo.bar.com/submit.jsp

这行得通。

conn = httplib.HTTPConnection("www.bar.com")
conn.request("POST", "",parameters)

但这不是,有人可以向我解释为什么它没有以及正确的方法是什么?

conn = httplib.HTTPConnection("www.foo.bar.com")
conn.request("POST", "/submit.jsp", parameters)

我收到此错误

File "example.py", line 68, in <module>
    conn.request("POST", "/submit.jsp", parameters)
  File "/usr/lib/python2.7/httplib.py", line 958, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python2.7/httplib.py", line 992, in _send_request
    self.endheaders(body)
  File "/usr/lib/python2.7/httplib.py", line 954, in endheaders
    self._send_output(message_body)
  File "/usr/lib/python2.7/httplib.py", line 814, in _send_output
    self.send(msg)
  File "/usr/lib/python2.7/httplib.py", line 776, in send
    self.connect()
  File "/usr/lib/python2.7/httplib.py", line 757, in connect
    self.timeout, self.source_address)
  File "/usr/lib/python2.7/socket.py", line 553, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno -2] Name or service not known

提前致谢

4

2 回答 2

1

无论您真正使用的是什么主机名,www.foo.bar.com都无法解析为 IP 地址。请注意,您的第一个示例使用了www.bar.com,而不是www.foo.bar.com. 虽然这些只是示例,但您使用的第二个主机名是错误的。

路径/submit.jsp不是这里的问题,如果那是你真正想要测试的?

于 2012-10-10T00:34:32.683 回答
0

此错误意味着 python 无法访问您在函数中定义的 HTTP 服务器,您可能有一个不需要的“HTTP://”,一个错字的 url,如果您使用的是 IPV6,它可能是您的地址或其他形式网络问题。

这可能会有所帮助;

使用 conn = httplib.HTTPConnection ("http://ipaddr:port") 时出错

于 2012-10-10T00:23:31.273 回答