当前位置: 首页 > 面试题库 >

如何修复httplib.BadStatusLine异常?

梁晋鹏
2023-03-14
问题内容
URL = "MY HTTP REQUEST URL"
XML = "<port>0</port>"

parameter = urllib.urlencode({'XML': XML})
response = urllib.urlopen(URL, parameter)
print response.read()


IOError: ('http protocol error', 0, 'got a bad status line', None)

我正在尝试将XML发送到服务器并取回XML。有什么办法可以解决/忽略此异常吗?

我知道状态行为空,这会引发此错误。


问题答案:

尝试看看您的服务器实际上返回了什么!它可能不是有效的HTTP响应。您可以使用以下方式将原始的http请求发送到服务器:

from socket import socket

host = 'localhost'
port = 80
path = "/your/url"
xmlmessage = "<port>0</port>"

s = socket()
s.connect((host, port))
s.send("POST %s HTTP/1.1\r\n" % path)
s.send("Host: %s\r\n" % host)
s.send("Content-Type: text/xml\r\n")
s.send("Content-Length: %d\r\n\r\n" % len(xmlmessage))
s.send(xmlmessage)
for line in s.makefile():
    print line,
s.close()

响应应类似于:

HTTP/1.1 200 OK
<response headers>

<response body>


 类似资料:
  • 我正试着数字符串中元音的数目。问题是它编译正确,但当我运行它时,命令窗口显示“countvowels.main(countvowels.java:25)处线程'main'java.lang.NullPointerException”。 是什么导致了这一点,我该如何修复它,我该如何防止它在未来再次发生? 第25行是我的if语句:

  • 我使用的是Selenium3.9.0+Geckodriver0.24+Firefox58.0.2。 当webdriver想要在我的目标站点上单击导航树中的元素时->script crashing with selenium异常:“selenium.Common.Exceptions.ElementClickInterceptedException:Message:element is not cl

  • 我是拉雷维尔的新手。我正在尝试一个简单的Ajax请求,但是我收到了以下错误消息。这是什么意思? {消息:“,异常:“Symfony\Component\HttpKernel\exception\HttpException”,…}异常:“Symfony\Component\HttpKernel\exception\HttpException”文件:“C:\MAMP\htdocs\project\u

  • 我想使用来模拟请求和响应。为此,我使用docker映像。下面是docker-compose文件示例,其中使用。 现在为了增加期望。我使用以下mockserver java客户端。 但是当我调用rest api添加期望时,它就起作用了。 Curl-V-X将“http://mylocalhost.org:1080/mockserver/expected”

  • 嗨,我正在尝试建立一个从visual Studio2019/VB.NET到phpmyadmin的连接,我试着按照YouTube的教程学习,但当我尝试连接时,我一直遇到这个错误,我甚至尝试了mysql.data的其他验证。

  • 我是UDP协议的新手,我想学习一个很好的例子。我终于找到了一个很好的示例,但它给出了异常 我首先运行服务器,然后运行客户端。 客户端输出: 来自客户端的消息 来自服务器的响应:谢谢您的消息------------- 上面的----大行 服务器输出: java.lang.ClassNotFoundexception:ex_udp_client.student在java.net.urlClassLoa