{"id":37036470,"url":"https://github.com/uneecorn/httunicorn","last_synced_at":"2026-01-14T04:20:23.738Z","repository":{"id":144200029,"uuid":"150032352","full_name":"uneecorn/httunicorn","owner":"uneecorn","description":"Designed to help C# programmers creating HTTP Requests, this is The Hypertext Transfer Unicorn :unicorn:","archived":false,"fork":false,"pushed_at":"2023-12-15T08:32:35.000Z","size":86,"stargazers_count":5,"open_issues_count":2,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-15T01:43:24.699Z","etag":null,"topics":["csharp","csharprest","dotnet","fluentapi","http","httpclient","httprequest","library","rest","unicorn"],"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/uneecorn.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}},"created_at":"2018-09-23T22:51:46.000Z","updated_at":"2019-11-15T15:51:39.000Z","dependencies_parsed_at":"2023-06-03T03:30:23.869Z","dependency_job_id":null,"html_url":"https://github.com/uneecorn/httunicorn","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/uneecorn/httunicorn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uneecorn%2Fhttunicorn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uneecorn%2Fhttunicorn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uneecorn%2Fhttunicorn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uneecorn%2Fhttunicorn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uneecorn","download_url":"https://codeload.github.com/uneecorn/httunicorn/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uneecorn%2Fhttunicorn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28409386,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["csharp","csharprest","dotnet","fluentapi","http","httpclient","httprequest","library","rest","unicorn"],"created_at":"2026-01-14T04:20:23.078Z","updated_at":"2026-01-14T04:20:23.732Z","avatar_url":"https://github.com/uneecorn.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HttUnicorn v0.1.0\n\n[![NuGet](https://img.shields.io/badge/nuget-v0.1.0-blue.svg)](https://www.nuget.org/packages/HttUnicorn/0.0.2-alfa)  \n\n\u003e Designed to help C# programmers creating HTTP Requests, this is The Hypertext Transfer Unicorn :unicorn:\n\n## Usage\n\n### Nuget\nYou can get **HttpUnicorn** by installing our [NuGet Package](https://www.nuget.org/packages/HttUnicorn/0.1.0);\n\n### Config\n**HttUnicorn** uses a config object called UnicornConfig that need a string with the url.\n\n```csharp\nvar config = new UnicornConfig(\"http://localhost:3000/todos/\");\n```\n\nYou can also use UnicornConfig to set the Timeout and Headers\n\n```csharp\nvar config = new UnicornConfig(\n  \"http://localhost:3000/todos/\",\n  timeout: new TimeSpan(0, 0, 45),\n  headers: new List\u003cUnicornHeader\u003e\n  {\n    new UnicornHeader(\"header_name\", \"header_value\"),\n    new UnicornHeader(\"other_header_name\", \"other_header_value\")\n  });\n```\n\nYou can pass the timeout directly as seconds\n\n```csharp\nvar config = new UnicornConfig(\n  \"http://localhost:3000/todos/\",\n  timeoutSeconds: 35\n  );\n```\n\nYou can start following the examples bellow:\n\n### Get\n\n```csharp\nList\u003cTodo\u003e todos = await new Unicorn(config).GetModelAsync\u003cList\u003cTodo\u003e\u003e();\n\nstring todosString = await new Unicorn(config).GetStringAsync();\n\nusing(HttpResponseMessage responseMessage = \n  await new Unicorn(config).GetResponsegAsync())\n{\n    //deal with the response message\n}\n```\n\n### Post\n\n```csharp\nTodo generatedTodo = await new Unicorn(config)\n  .PostModelAsync\u003cTodo, Todo\u003e(new Todo\n  {\n    Completed = true,\n    Title = \"todo\",\n    UserId = 36\n  });\n```\n```csharp\nstring stringResponseBody = await new Unicorn(config)\n  .PostStringAsync(new Todo\n  {\n    Completed = true,\n    Title = \"todo\",\n    UserId = 36\n  });\n```\n\n```csharp\nusing(HttpResponseMessage responseMessage = \n  await new Unicorn(config).PostResponsegAsync())\n{\n    //deal with the response message\n}\n```\n\n### Put\n\n```csharp\nTodo updatedTodo = await new Unicorn(config)\n                    .PutModelAsync\u003cTodo, Todo\u003e(todo);\n```\n\n### Delete\n\n```csharp\nMyApiResponse response = await new new Unicorn(config)\n                          .DeleteModelAsync\u003cMyApiResponse\u003e(key);\n//This one is for situations when the requested API returns an object in the body of the response.\n\n```\n\n\n## Contact us\n\nTyler Mendes de Brito - [@tylerbryto (Github)](https://github.com/tylerbryto) – [colorigotica (Twitter)](https://twitter.com/colorigotica) – tyler.brito99@gmail.com\n\n## Contributing\n\nSee [git flow cheatsheet](https://danielkummer.github.io/git-flow-cheatsheet/).\n\n1. Fork it (\u003chttps://github.com/tylerbryto/httunicorn/fork\u003e)\n2. Create your feature branch (`git checkout -b feature/fooBar`)\n3. Commit your changes (`git commit -am 'Add some fooBar'`)\n4. Push to the branch (`git push origin feature/fooBar`)\n5. Create a new Pull Request\n6. Wait for our response\n\n[![](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/images/0)](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/links/0)[![](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/images/1)](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/links/1)[![](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/images/2)](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/links/2)[![](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/images/3)](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/links/3)[![](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/images/4)](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/links/4)[![](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/images/5)](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/links/5)[![](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/images/6)](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/links/6)[![](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/images/7)](https://sourcerer.io/fame/tylerbryto/tylerbryto/httunicorn/links/7)\n\n---\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funeecorn%2Fhttunicorn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funeecorn%2Fhttunicorn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funeecorn%2Fhttunicorn/lists"}