如何发送不使用Python的“主机头”的要求?(How to send a request with

2019-09-28 05:04发布

我一直在尝试了很多天了,所以在这里我终于问,可能是大多数专家愚蠢的问题。
我使用的PyUnit我的应用程序的API测试。 该应用程序(被测试)部署在本地服务器在这里的一个。 该应用程序防止黑客恶意做活动。 因此,我通过访问这个应用程序的任何网站(此应用程序保护)。 例如, http://my-security-app/stackoverflow/loginhttp://my-security-app/website-to-be-protected等。

几乎整个框架是跑来跑去的urllib和urllib2的。

场景: - 我需要发送一个请求,而不主持人的头或“Host123”作为头名,而不是原来的,使用python的请求。

我一直在努力下文提到的代码。 但它不是为我工作。

“测试失败,因为一个例外:[错误9]错误的文件描述符”

    host = "12.1.3.16"
    with closing(socket.create_connection((host, 80))) as s:
     # send request without Host header
        s.sendall(b"GET /mywebsite/administrator/ HTTP/1.1\r\n" +
        #"Host12:{}\r\n".format(host).encode('ascii', 'strict') +
        b"Connection: close\r\n\r\n")   

任何帮助深表感谢。

提前致谢!

Answer 1:

使用httpbin测试服务器这一点。 它是用Python编写的,顺便说一句。

描述:

测试HTTP库有时会变得困难。 PostBin.org是梦幻般的测试POST请求,但仅此而已。 这存在覆盖所有种类的HTTP场景。 附加端点正被考虑(例如,/放气)。

所有端点响应是JSON编码。

作者在提供基于此服务器上,甚至公共服务http://httpbin.org



文章来源: How to send a request without 'Host Header' using Python?