尝试在python中使用HTTP POST请求进行POST

时间:2012-10-10 00:16:52

标签: python http-post httpconnection

我正在尝试使用HTTP POST请求将两个参数发布到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

提前致谢

2 个答案:

答案 0 :(得分:1)

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

路径/submit.jsp在这里不是问题,如果这是您实际尝试测试的内容?

答案 1 :(得分:0)

这个错误意味着python无法访问你在函数中定义的HTTP服务器,你可能会有一个不需要的&#34; HTTP://&#34;,一个错字&#39; d url,如果你&#39;重新使用IPV6可能是您的地址或其他网络问题的形式。

这可能会有所帮助;

Error while using conn = httplib.HTTPConnection ("http://ipaddr:port")