一个简单的Python HTTP服务器,它尝试以最合理的方式将请求在响应中回显
项目描述
一个简单的Python HTTP服务器,它尝试以最合理的方式将请求在响应中回显
提供一个简单的HTTP服务器,尝试以尽可能合理的方式将请求在响应中回显。这可以用于测试、调试、在具有硬编码假设需要HTTP请求的系统中构建本地服务器等。
$ python -m httpdecho Echoing HTTP at https://127.0.0.1:8000 ...
示例
未指定端口时,服务器将尝试从8000开始寻找下一个可用的端口,以尽可能保持可预测性
>>> import sys >>> import time >>> import subprocess >>> from six.moves import SimpleHTTPServer >>> startup_delay = 0.5 >>> simple_popen = subprocess.Popen( ... [sys.executable, '-m', SimpleHTTPServer.__name__] ... ); time.sleep(1) >>> echo_popen = subprocess.Popen( ... [sys.executable, '-m', 'httpdecho'] ... ); time.sleep(1) >>> echo_popen.poll() >>> simple_popen.kill()
一旦启动,HTTP请求将在响应中进行回显。默认响应体格式基本上是HTTP头格式,来自 http.client.HTTPMessage
>>> import io >>> import requests >>> import email >>> get_response = requests.delete('https://127.0.0.1:8001') >>> get_body = email.message_from_string(get_response.text) >>> print(get_body['Method']) DELETE >>> print(get_body['Path']) / >>> print(get_body.get_payload()) <BLANKLINE>
查询参数也包含在内
>>> query_response = requests.get( ... 'https://127.0.0.1:8001', params=dict(Foo='foo')) >>> query_body = email.message_from_string(query_response.text) >>> print(query_body['Foo']) foo
如果请求是 POST 或其他接受请求体的方法,则请求体或响应体的内容将包含POST体
>>> post_response = requests.patch( ... 'https://127.0.0.1:8001', data=dict(Bar='bar')) >>> post_body = email.message_from_string(post_response.text) >>> print(post_body.get_payload()) Bar=bar
关闭服务器
>>> echo_popen.kill()
待办事项
未来版本的功能
Content-Type 和 Accept 的内容协商支持
如果提供,以 Accept 头中指定的格式返回响应体,否则以请求相同的 Content-Type 返回。
关闭
httpd-echo-0.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c95feb1186d499275f5099df2051454a4e9da8d9df2462c1616272431a7604dd |
|
MD5 | b331bcdd59bb5b60aadcd05acda93928 |
|
BLAKE2b-256 | 3e561155fe039c13ab40496cddf469491f8137878edfb0929ee8b71e726283e4 |