jjzjj

HttpClient

全部标签

c# - HttpClient.SendAsync 使用线程池而不是异步 IO?

所以我一直在深入研究HttpClient.SendAsync的实现通过反射器。我有意想知道这些方法的执行流程,并确定调用哪个API来执行异步IO工作。探索里面的各个类之后HttpClient,我看到它在内部使用HttpClientHandler源自HttpMessageHandler并实现其SendAsync方法。这是HttpClientHandler.SendAsync的实现:protectedinternaloverrideTaskSendAsync(HttpRequestMessagerequest,CancellationTokencancellationToken){if(r

C#:HttpClient,服务器违反了协议(protocol)。部分=响应状态行

我正在使用HttpClient与我的WPF应用程序中的Web服务通信的类。当我在同一个连接上发出连续的GET请求时,一切正常。但是,当我在同一个连接上发出连续的PUT/PATCH请求时,第一个请求准确执行并且我收到了响应,但第二个请求不包含请求中的正文并且我收到臭名昭着的错误“服务器提交了协议(protocol)违规。Section=ResponseStatusLine”。如果我在每次请求后通过向header添加Connection:close手动关闭连接,我的请求就会成功完成。这个“解决方案”是一个糟糕的模式,性能将无法适当扩展。下面是我发送的请求中的TCP流输出列表的去品牌化版本:

c# - 找不到类型或命名空间 'HttpClient'

我对这个引用错误失去了理智。我添加了Microsoft.Net.HttpNuget包,确保将System.Net.Http引用添加到页面,导入了System.Net.Http类的命名空间。没有什么。我什至使用空白模板从头开始重新创建项目。有人可以提供一些想法吗?谢谢! 最佳答案 不确定您是否已经尝试过,但是:我所做的只是在项目引用中添加System.Net.Http。在ProjectExplorer中,右键单击references->addreference,然后勾选dll列表中的相关复选框并单击OK

c# - 在 Windows 应用商店应用程序中使用 httpclient 获取 UTF-8 响应

我正在构建一个Windows应用商店应用,但我一直无法从API获取UTF-8响应。这是代码:using(HttpClientclient=newHttpClient()){Uriurl=newUri(BaseUrl+"/me/lists");HttpRequestMessagerequest=newHttpRequestMessage(HttpMethod.Get,url);request.Headers.Add("Accept","application/json");HttpResponseMessageresponse=awaitclient.SendRequestAsync(r

c# - 在 Mono 上使用自定义 SSL 客户端证书 System.Net.HttpClient

我正在使用MicrosoftHTTPClientLibraries来自NuGet,我基本上是在尝试使用X509Certificate2证书在HttpClient中允许TLS身份验证。我试过这样创建客户端:WebRequestHandlercertHandler=newWebRequestHandler(){ClientCertificateOptions=ClientCertificateOption.Manual,UseDefaultCredentials=false};certHandler.ClientCertificates.Add(this.ClientCertificate

c# - HttpClient 在上传前读取整个文件。 UWP

我正在制作一个将文件上传到facebook的UWP应用程序,我正在使用自定义HttpContent以4kblock的形式上传文件,以最大限度地减少大文件(>100mb)的内存使用并报告进度。我的自定义HttpContentUploadWithProgressHttpContent:classUploadWithProgressHttpContent:HttpContent{privatereadonlyIProgress_progress;privatereadonlyOperationProgress_data;privatereadonlyStream_file;privatere

c# - 如何将 Fiddler 与 HttpClient 一起使用?

我知道有很多关于此的问题/答案、博客,而不是谈论Telerik的常见问题解答。我仍然找不到以清晰纯粹的方式诊断和解决这个问题:上下文:我有一个WebAPI应用程序和一个(单元测试)客户端,它使用HttpClient向API发送请求。WebAPI应用程序监听http://localhost:8631/有时我使用Fiddler来查看发生了什么。问题:我的HttpClient和WebAPI之间的流量没有被Fiddler捕获。启动Fiddler后流量仍然正常,但未在Fiddler中显示。到目前为止的诊断:重要提示:使用任何浏览器并将请求发送到http://localhost:8631/正在工作

C# HttpClient PostAsync 将 204 变成 404

鉴于此WebApi服务:[ActionName("KillPerson")][HttpPost]publicvoidKillPerson([FromBody]longid){//Kill}这个HttpClientPostAsync调用:varhttpClient=newHttpClient{BaseAddress=newUri(ClientConfiguration.ApiUrl)};httpClient.DefaultRequestHeaders.Accept.Add(newMediaTypeWithQualityHeaderValue("application/json"));va

curl、Postman、HttpClient

1、curl  curl命令可以实现http请求,默认使用GET请求,如下所示:@WebServlet(urlPatterns="/test2")publicclassHelloServletextendsHttpServlet{protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{resp.setContentType("text/html");PrintWriterpw=resp.getWriter();pw.write("helloworld"

c# - 如何使用 HttpClient 读取 XML 响应?

显然HttpClient是发出HTTP请求的新推荐方式,因此我尝试使用它向DeliciousAPI发出请求,后者返回XML响应。这是我得到的:internalclassProgram{privatestaticvoidMain(string[]args){varcredentials=newNetworkCredential("username","password");varhandler=newHttpClientHandler{Credentials=credentials};varclient=newHttpClient(handler);varsuggest=newUri("