https://github.com/pykit3/k3http
We find that 'httplib' must work in blocking mode and it can not have a timeout when recving response.
https://github.com/pykit3/k3http
http python
Last synced: 3 months ago
JSON representation
We find that 'httplib' must work in blocking mode and it can not have a timeout when recving response.
- Host: GitHub
- URL: https://github.com/pykit3/k3http
- Owner: pykit3
- License: mit
- Created: 2021-08-18T05:16:37.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2025-08-28T12:36:59.000Z (8 months ago)
- Last Synced: 2025-09-22T16:11:03.069Z (7 months ago)
- Topics: http, python
- Language: Python
- Homepage: https://blog.openacid.com
- Size: 47.9 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# k3http
[](https://github.com/pykit3/k3http/actions/workflows/python-package.yml)
[](https://k3http.readthedocs.io/en/stable/?badge=stable)
[](https://pypi.org/project/k3http)
We find that 'httplib' must work in blocking mode and it can not have a timeout when recving response.
k3http is a component of [pykit3] project: a python3 toolkit set.
HTTP/1.1 client
Use this module, we can set timeout, if timeout raise a 'socket.timeout'.
# Install
```
pip install k3http
```
# Synopsis
```python
import k3http
import urllib
import socket
headers = {
'Host': '127.0.0.1',
'Accept-Language': 'en, mi',
}
try:
h = k3http.Client('127.0.0.1', 80)
# send http reqeust without body
# read response status line
# read response headers
h.request('/test.txt', method='GET', headers=headers)
status = h.status
# response code return from http server, type is int
# 200
# 302
# 404
# ...
res_headers = h.headers
# response headers except status line
# res_headers = {
# 'Content-Type': 'text/html;charset=utf-8',
# 'Content-Length': 1024,
# ...
# }
# get response body
print(h.read_body(None))
except (socket.error, k3http.HttpError) as e:
print(repr(e))
content = urllib.urlencode({'f': 'foo', 'b': 'bar'})
headers = {
'Host': 'www.example.com',
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
'Content-Length': len(content),
}
try:
h = k3http.Client('127.0.0.1', 80)
# send http reqeust
h.send_request('http://www.example.com', method='POST', headers=headers)
# send http request body
h.send_body(content)
# read response status line and headers
status, headers = h.read_response()
# read response body
print(h.read_body(None))
except (socket.error, k3http.HttpError) as e:
print(repr(e))
```
# Author
Zhang Yanpo (张炎泼)
# Copyright and License
The MIT License (MIT)
Copyright (c) 2015 Zhang Yanpo (张炎泼)
[pykit3]: https://github.com/pykit3