{"id":22730909,"url":"https://github.com/gospider007/requests","last_synced_at":"2025-04-04T12:06:52.270Z","repository":{"id":200303590,"uuid":"705131896","full_name":"gospider007/requests","owner":"gospider007","description":"🚀A next-generation HTTP client for Golang, Support for http1, http2, http3, websocket, sse, utls, uquic","archived":false,"fork":false,"pushed_at":"2025-03-27T09:41:41.000Z","size":686,"stargazers_count":183,"open_issues_count":0,"forks_count":30,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-28T11:06:38.464Z","etag":null,"topics":["chain-proxy","go","golang","http","http-client","http2","http3","https","ja3","ja4","quic","sse","udp-proxy","websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gospider007.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-15T05:43:29.000Z","updated_at":"2025-03-27T09:41:44.000Z","dependencies_parsed_at":"2023-11-06T04:29:08.447Z","dependency_job_id":"e056d756-b94c-4042-b5f2-fc29d23cf2b4","html_url":"https://github.com/gospider007/requests","commit_stats":null,"previous_names":["gospider007/requests"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gospider007%2Frequests","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gospider007%2Frequests/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gospider007%2Frequests/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gospider007%2Frequests/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gospider007","download_url":"https://codeload.github.com/gospider007/requests/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247174407,"owners_count":20896076,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chain-proxy","go","golang","http","http-client","http2","http3","https","ja3","ja4","quic","sse","udp-proxy","websocket"],"created_at":"2024-12-10T19:15:11.807Z","updated_at":"2025-04-04T12:06:52.254Z","avatar_url":"https://github.com/gospider007.png","language":"Go","readme":"\u003cp align=\"center\"\u003e\r\n  \u003ca href=\"https://github.com/gospider007/requests\"\u003e\u003cimg src=\"https://go.dev/images/favicon-gopher.png\"\u003e\u003c/a\u003e\r\n\u003c/p\u003e\r\n\u003cp align=\"center\"\u003e\u003cstrong\u003eRequests\u003c/strong\u003e \u003cem\u003e- A next-generation HTTP client for Golang.\u003c/em\u003e\u003c/p\u003e\r\n\u003cp align=\"center\"\u003e\r\n\u003ca href=\"https://github.com/gospider007/requests\"\u003e\r\n    \u003cimg src=\"https://img.shields.io/github/last-commit/gospider007/requests\"\u003e\r\n\u003c/a\u003e\r\n\u003ca href=\"https://github.com/gospider007/requests\"\u003e\r\n    \u003cimg src=\"https://img.shields.io/badge/build-passing-brightgreen\"\u003e\r\n\u003c/a\u003e\r\n\u003ca href=\"https://github.com/gospider007/requests\"\u003e\r\n    \u003cimg src=\"https://img.shields.io/badge/language-golang-brightgreen\"\u003e\r\n\u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n---\r\n\u003ch2 align=\"center\"\u003eA request library designed specifically for web crawlers\u003c/h2\u003e\r\n\r\n\u003ch2 align=\"center\"\u003eRequests is a fully featured HTTP client library for Golang. Network requests can be completed with just a few lines of code. Unified support for http1, http2, http3, websocket, sse, utls, uquic\u003c/h2\u003e\r\n\r\n## Innovative Features\r\n| **gospider007/requests** | **Other Request Libraries** |\r\n|---------------------------|----------------------------|\r\n| Unlimited chained proxy   | Not supported             |\r\n| HTTP/3 fingerprint spoofing protection | Not supported  |\r\n| Arbitrary closure of underlying connections | Not supported |\r\n| Genuine request-level proxy settings | Not supported   |\r\n| Unique transport layer management mechanism, fully unifying HTTP/1, HTTP/2, HTTP/3, WebSocket, SSE, UTLS, QUIC protocol handling | Not supported |\r\n\r\n## Features\r\n  * [Simple for settings and Request](https://github.com/gospider007/requests#quickly-send-requests)\r\n  * [Request](https://github.com/gospider007/requests/tree/master/test/request) Support Automatic type conversion, Support orderly map\r\n    * [Json Request](https://github.com/gospider007/requests/blob/master/test/request/json_test.go) with `application/json`\r\n    * [Data Request](https://github.com/gospider007/requests/blob/master/test/request/data_test.go) with `application/x-www-form-urlencoded`\r\n    * [Form Request](https://github.com/gospider007/requests/blob/master/test/request/form_test.go) with `multipart/form-data`\r\n    * [Upload File Request](https://github.com/gospider007/requests/blob/master/test/request/file_test.go) with `multipart/form-data`\r\n    * [Flow Request](https://github.com/gospider007/requests/blob/master/test/request/stream_test.go)\r\n    * [Request URL Path Params](https://github.com/gospider007/requests/blob/master/test/request/params_test.go)\r\n    * [Local network card](https://github.com/gospider007/requests/blob/master/test/request/localAddr_test.go)\r\n  * [Response](https://github.com/gospider007/requests/tree/master/test/response)\r\n    * [Return whether to reuse connections](https://github.com/gospider007/requests/blob/master/test/response/isNewConn_test.go)\r\n    * [Return Raw Connection](https://github.com/gospider007/requests/blob/master/test/response/rawConn_test.go)\r\n    * [Return Proxy](https://github.com/gospider007/requests/blob/master/test/response/useProxy_test.go)\r\n  * [Middleware](https://github.com/gospider007/requests/tree/master/test/middleware)\r\n    * [Option Callback Method](https://github.com/gospider007/requests/blob/master/test/middleware/optionltCallBack_test.go)\r\n    * [Result Callback Method](https://github.com/gospider007/requests/blob/master/test/middleware/resultCallBack_test.go)\r\n    * [Redirect Callback Method](https://github.com/gospider007/requests/blob/master/test/middleware/redirectCallBack_test.go)\r\n    * [Error Callback Method](https://github.com/gospider007/requests/blob/master/test/middleware/errCallBack_test.go)\r\n    * [Request Callback Method](https://github.com/gospider007/requests/blob/master/test/middleware/requestCallback_test.go)\r\n    * [Retry](https://github.com/gospider007/requests/blob/master/test/middleware/try_test.go)\r\n  * [Protocol](https://github.com/gospider007/requests/tree/master/test/protocol)\r\n    * [HTTP1](https://github.com/gospider007/requests/blob/master/test/protocol/http1_test.go)\r\n    * [HTTP2](https://github.com/gospider007/requests/blob/master/test/protocol/http2_test.go)\r\n    * [HTTP3](https://github.com/gospider007/requests/blob/master/test/protocol/http3_test.go)\r\n    * [WebSocket](https://github.com/gospider007/requests/blob/master/test/protocol/websocket_test.go)\r\n    * [SSE](https://github.com/gospider007/requests/blob/master/test/protocol/sse_test.go)\r\n  * [Fingerprint](https://github.com/gospider007/requests/tree/master/test/fingerprint)\r\n    * [Ja3 Fingerprint](https://github.com/gospider007/requests/blob/master/test/fingerprint/ja3_test.go)\r\n    * [Http2 Fingerprint](https://github.com/gospider007/requests/blob/master/test/fingerprint/http2_test.go)\r\n    * [Quic Fingerprint](https://github.com/gospider007/requests/blob/master/test/fingerprint/quic_test.go)\r\n    * [Ja4 Fingerprint](https://github.com/gospider007/requests/blob/master/test/fingerprint/ja4_test.go)\r\n  * [Session](https://github.com/gospider007/requests/blob/master/test/session_test.go)\r\n  * [IPv4, IPv6 Address Control Parsing](https://github.com/gospider007/requests/blob/master/test/addType_test.go)\r\n  * [DNS Settings](https://github.com/gospider007/requests/blob/master/test/dns_test.go)\r\n  * [Proxy](https://github.com/gospider007/requests/blob/master/test/proxy/proxy_test.go)\r\n  * [Chain Proxy](https://github.com/gospider007/requests/blob/master/test/proxy/chain_proxy_test.go)\r\n  * [Logger](https://github.com/gospider007/requests/blob/master/test/logger/logger_test.go)\r\n  * [Well tested client library](https://github.com/gospider007/requests/tree/master/test)\r\n\r\n## Supported Go Versions\r\nRecommended to use `go1.23.0` and above.\r\nInitially Requests started supporting `go modules`\r\n\r\n## Installation\r\n\r\n```bash\r\ngo get github.com/gospider007/requests\r\n```\r\n## Usage\r\n```go\r\nimport \"github.com/gospider007/requests\"\r\n```\r\n### Quickly Send Requests\r\n```go\r\npackage main\r\n\r\nimport (\r\n\t\"log\"\r\n\t\"time\"\r\n\t\"github.com/gospider007/requests\"\r\n)\r\n\r\nfunc main() {\r\n    resp, err := requests.Get(nil, \"http://httpbin.org/anything\")\r\n    if err != nil {\r\n      log.Panic(err)\r\n    }\r\n    log.Print(resp.Text())    // Get content and parse as string\r\n    log.Print(resp.Content()) // Get content as bytes\r\n    log.Print(resp.Json())    // Get content and parse as gjson JSON\r\n    log.Print(resp.Html())    // Get content and parse as goquery DOM\r\n    log.Print(resp.Cookies()) // Get cookies\r\n}\r\n```\r\n\r\n# Contributing\r\nIf you have a bug report or feature request, you can [open an issue](../../issues/new)\r\n# Contact\r\nIf you have questions, feel free to reach out to us in the following ways:\r\n* QQ Group (Chinese): 939111384 - \u003ca href=\"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027\u0026k=yI72QqgPExDqX6u_uEbzAE_XfMW6h_d3\u0026jump_from=webapi\"\u003e\u003cimg src=\"https://pub.idqqimg.com/wpa/images/group.png\"\u003e\u003c/a\u003e\r\n* WeChat (Chinese): gospider007\r\n\r\n## Sponsors\r\nIf you like and it really helps you, feel free to reward me with a cup of coffee, and don't forget to mention your github id.\r\n\u003ctable\u003e\r\n    \u003ctr\u003e\r\n        \u003ctd align=\"center\"\u003e\r\n            \u003cimg src=\"https://github.com/gospider007/tools/blob/master/play/wx.jpg?raw=true\" height=\"200px\" width=\"200px\"   alt=\"\"/\u003e\r\n            \u003cbr /\u003e\r\n            \u003csub\u003e\u003cb\u003eWechat\u003c/b\u003e\u003c/sub\u003e\r\n        \u003c/td\u003e\r\n        \u003ctd align=\"center\"\u003e\r\n            \u003cimg src=\"https://github.com/gospider007/tools/blob/master/play/qq.jpg?raw=true\" height=\"200px\" width=\"200px\"   alt=\"\"/\u003e\r\n            \u003cbr /\u003e\r\n            \u003csub\u003e\u003cb\u003eAlipay\u003c/b\u003e\u003c/sub\u003e\r\n        \u003c/td\u003e\r\n    \u003c/tr\u003e\r\n\u003c/table\u003e\r\n\r\n## License  \r\nThis project is licensed under the Mozilla Public License 2.0 (MPL-2.0) with additional author attribution requirements.  \r\nSee the [LICENSE](./LICENSE) file for details.  \r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgospider007%2Frequests","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgospider007%2Frequests","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgospider007%2Frequests/lists"}