{"id":25272937,"url":"https://github.com/noahedavis/webrequest","last_synced_at":"2025-04-06T08:17:12.628Z","repository":{"id":275570657,"uuid":"923871868","full_name":"noahedavis/webrequest","owner":"noahedavis","description":"Simple thread-safe C++ WinHttp wrapper for creating synchronous/asynchronous web requests.","archived":false,"fork":false,"pushed_at":"2025-02-07T10:03:46.000Z","size":38,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-07T11:19:58.521Z","etag":null,"topics":["cpp","http","http2","web","winhttp"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/noahedavis.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":"2025-01-29T01:03:38.000Z","updated_at":"2025-02-07T10:03:51.000Z","dependencies_parsed_at":"2025-02-07T11:20:01.828Z","dependency_job_id":"17cc5cce-ee75-498f-bb86-ea30f8aa8d94","html_url":"https://github.com/noahedavis/webrequest","commit_stats":null,"previous_names":["noahedavis/webrequester","noahedavis/webrequest"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noahedavis%2Fwebrequest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noahedavis%2Fwebrequest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noahedavis%2Fwebrequest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noahedavis%2Fwebrequest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noahedavis","download_url":"https://codeload.github.com/noahedavis/webrequest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247451664,"owners_count":20940944,"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":["cpp","http","http2","web","winhttp"],"created_at":"2025-02-12T13:38:08.286Z","updated_at":"2025-04-06T08:17:12.608Z","avatar_url":"https://github.com/noahedavis.png","language":"C++","readme":"# webrequest\n\nSimple thread-safe C++ WinHttp wrapper for creating synchronous/asynchronous web requests. Includes easy customization options for mutual tls, retries and authentication.\n\nIf you have any suggestions for changes/updates feel free to let me know!\n\n## Examples\n\nTo send a web request and get it's response, call the request() method on a WebRequester object:\n\n```C++\nWebRequester req;\n\nWebResponse resp = req.request(\"https://www.github.com\");\nprintln(resp.response_str);\n```\n\n\nTo send an async web request, use the requestAsync() method. After the request is sent, call the get() method on the returned FutureWebResponse to get the results.\n\n```C++\nWebRequester req;\n\nFutureWebResponse resp = req.requestAsync(\"https://www.github.com\");\n\n// Do something ...\n\nprintln(resp.get().response_str);\n```\n\nOther basic examples can be found in the example folder\n\n## Overview\n\nThe WinHttp class includes the bare bone features needed to send http requests. This class behaves similarly to the WinHttpRequest class in VBA, but no data on the requests is stored within the class instance itself: request data and response data will exist in the methods that call the WinHttp request method\n\nThe WebRequester class is the main class, built over the WinHttp class. This class includes options for specifying number of retries on failure and performing custom-defined authentication procedures.\n\n## Build\n\nThis project currently supports C++11 through C++ 20, and requires the Windows SDK.\n\nWhen building the project, you'll need to include each of the cpp files, and these libraries from the Windows SDK:\n\n    winhttp.lib\n    Crypt32.Lib\n    RpcRT4.Lib\n\nThose libraries can be usually be found in a path like: \n\n    C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\[VERSION]\\um\\[CPU ISA]\n\nMore information on the Windows SDK and API can be found [here](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/) and [here](https://learn.microsoft.com/en-us/windows/win32/apiindex/windows-api-list):\n   \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoahedavis%2Fwebrequest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoahedavis%2Fwebrequest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoahedavis%2Fwebrequest/lists"}