| Name | httpso JSON |
| Version |
0.1.1
JSON |
| download |
| home_page | None |
| Summary | 🦄 A minimal and simple but unicorn HTTP library. |
| upload_time | 2024-07-10 13:42:00 |
| maintainer | None |
| docs_url | None |
| author | Torsten Klement |
| requires_python | None |
| license | MIT |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# httpso
🦄 A minimal and simple but unicorn HTTP library.
**httpso** allows you to send HTTP/1.1 and HTTP/2 requests extremely easily.
### Why is this library needed?
The focus of this library is on the ability to customize Ja3 fingerprints and using proxy servers when connecting to a TCP server to bypass most of DNS limitations.
### What functions does the library offer?
The answer is easy! All, but minimal and powerful 😎
### How can i use it?
The library supports all common requests types.
``` python
import json
from httpso import Session
# Session
s = Session(http_version=2,
proxy_host="geo.iproyal.com",
proxy_port=12321,
proxy_username="YOUR_PROXY_USERNAME",
proxy_password="YOUR_PROXY_PASSWORD",
ja3_fingerprint="772,4865-4866-4867-49196-49195-52393-49200-49199-52392-49162-49161-49172-49171-157-156-53-47-49160-49170-10,0-23-65281-10-11-16-5-13-18-51-45-43-27,29-23-24-25,0")
url = "https://integx.de"
headers = {
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6 Mobile/15E148 Safari/604.1"
}
payload_data = "key=value"
payload_json = json.dumps({
"key": "value"
})
payload_hex = ''.join(hex(ord(c))[2:] for c in "test")
print(f'GET: {s.get(url, headers, timeout=15)}')
# print(f'DELETE: {s.delete(url, timeout=5).__str__()}')
# print(f'HEAD: {s.head(url, timeout=5).__str__()}')
# print(f'TRACE: {s.trace(url, timeout=5).__str__()}')
# print(f'POST [DATA]: {s.post(url, headers, data=payload_data, timeout=5).__str__()}')
# print(f'POST [JSON]: {s.post(url, headers, json=payload_json, timeout=5).__str__()}')
# print(f'POST [HEX]: {s.post(url, headers, data=payload_hex, timeout=5).__str__()}')
# print(f'PUT: {s.put(url, headers, data=payload_data, timeout=5).__str__()}')
# print(f'PATCH: {s.post(url, headers, data=payload_data, timeout=5).__str__()}')
```
### What is the goal?
The reason for creating this library was that over time it became increasingly difficult to retrieve data from services on the World Wide Web (technical term: **scraping**) or to send this data back to the service (technical term: **reverse engineering**) and get a valid response. The reason for this was that the **ja3 fingerprints** of conventional Python libraries were statically set by the developers and were therefore easy to identify. For this simple purpose this library was created. **Only with the addition of creating the ability to change the client's fingerprint and enabling the use of proxy servers.**
### Credits
The **httpso** library is based on [tlsnet](https://github.com/torstenprivate/tlsnet), a .NET HTTP 1.1/2 client library with support for Ja3 fingerprints and proxy servers.
### Questions?
You can contact me on Discord: https://discord.gg/VaKrQ26DH3
### License
MIT
### Please note!
If you are facing the **Error 13 Permission denied** for example on macOS, pleae open a terminal and run the following command
``` shell
cd /Users/YOUR_USERNAME/Library/Python/YOUR_PYTHON_VERSION/lib/python/site-packages/httpso/c/
sudo chmod 777 tlsnet-osx-x64
```
Raw data
{
"_id": null,
"home_page": null,
"name": "httpso",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "Torsten Klement",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/e2/11/6f7b796e8ceb6b1e8d6b1503a01b99a03064b51cdb39677f1349768ff672/httpso-0.1.1.tar.gz",
"platform": null,
"description": "# httpso\r\n\r\n\ud83e\udd84 A minimal and simple but unicorn HTTP library.\r\n\r\n\r\n\r\n**httpso** allows you to send HTTP/1.1 and HTTP/2 requests extremely easily.\r\n\r\n\r\n\r\n### Why is this library needed?\r\n\r\n\r\n\r\nThe focus of this library is on the ability to customize Ja3 fingerprints and using proxy servers when connecting to a TCP server to bypass most of DNS limitations.\r\n\r\n\r\n\r\n### What functions does the library offer?\r\n\r\n\r\n\r\nThe answer is easy! All, but minimal and powerful \ud83d\ude0e\r\n\r\n\r\n\r\n### How can i use it?\r\n\r\n\r\n\r\nThe library supports all common requests types.\r\n\r\n\r\n\r\n``` python\r\n\r\nimport json\r\n\r\nfrom httpso import Session\r\n\r\n\r\n\r\n# Session\r\n\r\ns = Session(http_version=2,\r\n\r\n proxy_host=\"geo.iproyal.com\",\r\n\r\n proxy_port=12321,\r\n\r\n proxy_username=\"YOUR_PROXY_USERNAME\",\r\n\r\n proxy_password=\"YOUR_PROXY_PASSWORD\",\r\n\r\n ja3_fingerprint=\"772,4865-4866-4867-49196-49195-52393-49200-49199-52392-49162-49161-49172-49171-157-156-53-47-49160-49170-10,0-23-65281-10-11-16-5-13-18-51-45-43-27,29-23-24-25,0\")\r\n\r\n\r\n\r\nurl = \"https://integx.de\"\r\n\r\n\r\n\r\nheaders = {\r\n\r\n \"User-Agent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6 Mobile/15E148 Safari/604.1\"\r\n\r\n}\r\n\r\n\r\n\r\npayload_data = \"key=value\"\r\n\r\n\r\n\r\npayload_json = json.dumps({\r\n\r\n \"key\": \"value\"\r\n\r\n})\r\n\r\n\r\n\r\npayload_hex = ''.join(hex(ord(c))[2:] for c in \"test\")\r\n\r\n\r\n\r\nprint(f'GET: {s.get(url, headers, timeout=15)}')\r\n\r\n# print(f'DELETE: {s.delete(url, timeout=5).__str__()}')\r\n\r\n# print(f'HEAD: {s.head(url, timeout=5).__str__()}')\r\n\r\n# print(f'TRACE: {s.trace(url, timeout=5).__str__()}')\r\n\r\n# print(f'POST [DATA]: {s.post(url, headers, data=payload_data, timeout=5).__str__()}')\r\n\r\n# print(f'POST [JSON]: {s.post(url, headers, json=payload_json, timeout=5).__str__()}')\r\n\r\n# print(f'POST [HEX]: {s.post(url, headers, data=payload_hex, timeout=5).__str__()}')\r\n\r\n# print(f'PUT: {s.put(url, headers, data=payload_data, timeout=5).__str__()}')\r\n\r\n# print(f'PATCH: {s.post(url, headers, data=payload_data, timeout=5).__str__()}')\r\n\r\n```\r\n\r\n\r\n\r\n### What is the goal?\r\n\r\n\r\n\r\nThe reason for creating this library was that over time it became increasingly difficult to retrieve data from services on the World Wide Web (technical term: **scraping**) or to send this data back to the service (technical term: **reverse engineering**) and get a valid response. The reason for this was that the **ja3 fingerprints** of conventional Python libraries were statically set by the developers and were therefore easy to identify. For this simple purpose this library was created. **Only with the addition of creating the ability to change the client's fingerprint and enabling the use of proxy servers.**\r\n\r\n\r\n\r\n### Credits\r\n\r\n\r\n\r\nThe **httpso** library is based on [tlsnet](https://github.com/torstenprivate/tlsnet), a .NET HTTP 1.1/2 client library with support for Ja3 fingerprints and proxy servers.\r\n\r\n\r\n\r\n### Questions?\r\n\r\n\r\n\r\nYou can contact me on Discord: https://discord.gg/VaKrQ26DH3\r\n\r\n\r\n\r\n### License\r\n\r\n\r\n\r\nMIT\r\n\r\n\r\n\r\n### Please note!\r\n\r\n\r\n\r\nIf you are facing the **Error 13 Permission denied** for example on macOS, pleae open a terminal and run the following command\r\n\r\n\r\n\r\n``` shell\r\n\r\ncd /Users/YOUR_USERNAME/Library/Python/YOUR_PYTHON_VERSION/lib/python/site-packages/httpso/c/\r\n\r\nsudo chmod 777 tlsnet-osx-x64\r\n\r\n```\r\n\r\n\r\n\r\n\r\n\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "\ud83e\udd84 A minimal and simple but unicorn HTTP library.",
"version": "0.1.1",
"project_urls": {
"Source": "https://github.com/torstenprivate/httpso"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c119f6e37f10c6236562a928ce433e578fb6995c72cf742ff000390eb16db7b1",
"md5": "007b26ffd0dfa56bf4d305686ef85a41",
"sha256": "429ea81ae85c6aa5eef61d2fa59cb039cf64d0c8c0dc289e2e1b12dac1f7b425"
},
"downloads": -1,
"filename": "httpso-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "007b26ffd0dfa56bf4d305686ef85a41",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 9468,
"upload_time": "2024-07-10T13:41:56",
"upload_time_iso_8601": "2024-07-10T13:41:56.848682Z",
"url": "https://files.pythonhosted.org/packages/c1/19/f6e37f10c6236562a928ce433e578fb6995c72cf742ff000390eb16db7b1/httpso-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e2116f7b796e8ceb6b1e8d6b1503a01b99a03064b51cdb39677f1349768ff672",
"md5": "e110a9abe44fb7ef9c42597cff175cfa",
"sha256": "49fcc55f11916d68a4c505cf35271243bd327c2b53618bdb4224a7d6d6654cc9"
},
"downloads": -1,
"filename": "httpso-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "e110a9abe44fb7ef9c42597cff175cfa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9390,
"upload_time": "2024-07-10T13:42:00",
"upload_time_iso_8601": "2024-07-10T13:42:00.227411Z",
"url": "https://files.pythonhosted.org/packages/e2/11/6f7b796e8ceb6b1e8d6b1503a01b99a03064b51cdb39677f1349768ff672/httpso-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-10 13:42:00",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "torstenprivate",
"github_project": "httpso",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "httpso"
}