jjzjj

dotnet-httpclient

全部标签

c# - 有没有办法为 WebAPI 项目生成 C# HTTPClient 包装器?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion在即将开展的项目中,我们希望使用ASP.NETWebAPI2向我们的网站和浏览器客户端公开服务功能。由于我们希望尽可能少的“端点”,所以我们希望所有调用,甚至是“内部”调用都使用来自WebAPI网络服务的服务器。(即不只是直接新建一个Controller实例)我正在寻找一些东西来帮助生成或搭建C#“客户端”,它包装HTTPClient并提供强类型的“代理”。类似于通过

c# - StringContent 与 ObjectContent

我正在使用System.Net.Http的HttpClient通过“POST”调用RESTAPI使用以下代码:using(HttpRequestMessagerequestMessage=newHttpRequestMessage(HttpMethod.Post,newUri(request)){}){response=awaithttpClient.PostAsync(request,objectContent);}“objectContent”目前是这个-objectContent=newObjectContent(jsonContent.GetType(),jsonContent

c# - 获取dotnet core中当前正在执行的方法名

我想获取dotnet核心应用程序中当前正在执行的方法的名称。有很多关于如何使用常规C#执行此操作的示例,例如GetthenameofthecurrentmethodHowtogetthenameofthecurrentmethodfromcode然而,这两种方法的api似乎还没有出现在核心中(参见https://github.com/dotnet/corefx/issues/1420)有没有其他方法可以获取.netcore中的执行方法名称? 最佳答案 CallerMemberNameAttribute允许您获取方法调用者的方法或属性

c# - 在 async/await 中正确处理 HttpClient 异常

我希望有人能就我在使用HttpClient进行异步/等待异常处理方面面临的问题给我一些启发。我已经编写了一些代码来说明,它正在WindowsPhone8设备和模拟器上执行:privateasyncvoidSearchButton_Click(objectsender,EventArgse){try{HttpClientclient=newHttpClient();System.Diagnostics.Debug.WriteLine("BEGINFAULTYREQUEST:");stringresponse=awaitclient.GetStringAsync("http://www.a

c# - 如何使用 System.Net.HttpClient 检索部分响应

我正在尝试使用新的HttpClient类(在.NET4.5中)从服务器检索部分响应以检查内容。我需要将检索到的数据大小限制为HTTP请求中内容的前几个字节,以限制带宽使用。我一直无法做到这一点。我尝试使用GetAsync(url,HttpCompletionOption.ResponseHeadersRead)然后使用Content.ReadAsStream()尝试只读取header,然后读取一小块响应流。我还尝试了GetStreamAsync()然后用一小块(1000字节)读取内容流。在这两种情况下,HttpClient似乎都在拉取和缓冲整个HTTP响应,而不是仅仅从流中读取请求的字

c# - 如何在 .NET Core 中使用 HttpClientHandler 和 HttpClientFactory

我想使用HttpClientFactory在.NETCore2.1中可用,但我也想使用HttpClientHandler利用AutomaticDecompression创建时的属性HttpClients.我很挣扎,因为.AddHttpMessageHandler需要DelegatingHandler不是HttpClientHandler.有人知道如何让它工作吗?谢谢,吉姆 最佳答案 通过HttpClientBuilder的ConfigurePrimaryHttpMessageHandler()方法定义主HttpMessageHand

c# - HttpRequestException 与 WebException

这是一个让我感到困惑的一般性问题。我认为一旦发出REST请求,错误就会通过WebException返回。在一种情况下,我得到了一个HttpRequestException,它不允许我获取HTTP状态代码。我是新手,但它们之间有什么区别?为什么有两种类型?什么时候使用一个而不是另一个?WebException似乎运行良好。HttpRequestException似乎是它的一个非常弱的版本,它知道状态代码(在它的消息中)但它不会明确地告诉我它是什么。编辑:我正在使用HttpClient。具体调用client.GetStreamAsync()。 最佳答案

c# - 如何使用HttpClient发送GET请求体中的内容?

目前要向API接口(interface)发送参数化GET请求,我正在编写以下代码:api/master/city/filter?cityid=1&citycode='ny'但是我看到URL长度有2,083个字符的限制。为了避免这种情况,我想在GET请求的内容正文中以json格式发送参数。但是,我发现HttpClient的所有Get方法都不允许发送内容主体。对于POST,我可以看到HttpClient中有一个名为PostAsync的方法,它允许内容主体。有没有办法不在URL中为GET请求发送参数以避免URL长度限制? 最佳答案 请阅读

c# - 在 Visual Studio 2013 中使用 HttpClient 进行单元测试/集成测试 Web API

我很难尝试使用VisualStudio2013测试我的APIController。我的一个解决方案有一个WebAPI项目和一个测试项目。在我的测试项目中,我有一个单元测试:[TestMethod]publicvoidGetProduct(){HttpConfigurationconfig=newHttpConfiguration();HttpServer_server=newHttpServer(config);varclient=newHttpClient(_server);varrequest=newHttpRequestMessage{RequestUri=newUri("htt

c# - 使用 HttpClient 和 Web API 方法 [FromBody] 参数发布到 Web API 最终为空

我正在尝试使用HttpClient发布到WebAPI。当我在WebAPI的Save方法中放置断点时,[FromBody]Product为空。这意味着我将产品发布到WebAPI的方式有问题。有人可以看看下面的代码,看看我可能哪里出错了。我假设它与标题和内容类型有关。从客户端存储库到WebAPI的POST调用应将产品对象作为JSON传递:publicasyncTaskSaveProduct(Productproduct){using(varclient=newHttpClient()){client.BaseAddress=newUri("http://localhost:99999/")