【问题标题】:Trying to POST using a HTTP POST-request in python尝试在 python 中使用 HTTP POST 请求进行 POST
【发布时间】:2012-10-10 00:16:52
【问题描述】:

我正在尝试使用 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

提前致谢

【问题讨论】:

  • 仅供参考:不是您的问题的答案,但我使用优秀的 Requests 包 (python-requests.org) 来满足我所有的 HTTP 客户端要求。

标签: python http-post httpconnection


【解决方案1】:

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

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

【讨论】:

  • 那么我将如何发布到主机名?正如我在下面的评论中提到的:根据给定的参数,我应该得到“OK”或“Err”。
  • 看起来您确实在使用这些主机名?如果是这样,www.bar.com 确实存在。 foo.bar.com 不是注册域。它无法解析为 IP 地址,因此无法联系。
  • Nono,我没有使用那些主机名! :)
  • 第二个主机名是什么?你确定它是有效的吗?如果您有主机的 IP 地址,请尝试使用它。
  • 已解决!问题是“www”。在 foo.bar.com 之前。我的一个错字。非常感谢您的回答!
【解决方案2】:

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

这可能会有所帮助;

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

【讨论】:

  • 我的网址中没有任何“HTTP://”。我尝试 ping www.bar.com,工作正常。但我无法 ping www.foo.bar.com。如果我无法连接到 www.foo.bar.com,我该如何访问 www.foo.bar.com/submit.jsp?
  • 您要发布到不是您网站的网站吗?
  • 是的。这是功课。如果我的参数正确,服务器将响应“OK”,否则返回“Err”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 2013-08-07
  • 2014-05-26
  • 1970-01-01
  • 1970-01-01
  • 2019-08-24
相关资源
最近更新 更多