如何在没有'Host Header'的情况下使用Python发送请求?

时间:2014-03-13 10:28:21

标签: python html http urllib2 urllib

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

几乎整个框架都围绕Urllib和Urllib2运行。

场景: - 我需要在没有“主持人”的情况下发送请求。标题或使用' Host123'的请求使用python作为标题名称而不是原始名称。

我一直在尝试下面提到的代码。但它不适合我。

"由于异常而导致测试失败:[Errno 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")   

任何帮助都将深表感谢。

提前致谢!

1 个答案:

答案 0 :(得分:1)

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

说明

  

有时,测试HTTP库可能会变得困难。 PostBin.org是   非常适合测试POST请求,但不是很多。这存在于   涵盖各种HTTP场景。正在增加其他端点   考虑(例如/ deflate)。

     

所有端点响应都是JSON编码的。

作者在http://httpbin.org

提供基于此服务器的公共服务
相关问题