草庐IT

apache-httpclient-5.x

全部标签

c# - HttpClient 的多个证书

我正在构建一个WindowsPhone8.1应用程序,它允许Azure用户使用Azure服务管理API查看他们的订阅/服务。身份验证是使用管理证书完成的,证书附加到对API的所有请求。它适用于单个用户。但是当我尝试包含多个订阅的功能时,问题就出现了。我能够在证书存储中安装证书并检索它。但是当我向API发送请求时,问题就出现了。即使我附加了正确的证书,我也会收到403forbidden错误。这是我使用的代码。publicasyncTaskGetCertificate(){awaitCertificateEnrollmentManager.ImportPfxDataAsync(Certif

c# - 更改每个请求的安全协议(protocol) (HttpClient)

我有一个WebAPI,它必须与一些不同的服务进行通信。目前,我将WebAPI设置为使用以下安全协议(protocol):ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12;当API通过HttpClient(比如Twitter)调用另一个服务时,它将使用该协议(protocol)。然而与此同时,另一个请求可能会进入以访问来自云的某些内容,无论出于何种原因,目前需要TLS(而不是TLS1.2)。对云端的请求,在发出前,再次设置安全协议(protocol):ServicePointManager.SecurityPr

c# - HTTPClient 在成功之前获得两个 401(发送错误的 token )

我正在尝试使用HttpClient与自托管WebAPI客户端通信。使用以下代码创建客户端:HttpClientHandlerclientHandler=newHttpClientHandler(){UseDefaultCredentials=true,PreAuthenticate=true};varclient=newHttpClient(clientHandler);在服务器端我们设置:HttpListenerlistener=(HttpListener)app.Properties[typeof(HttpListener).FullName];listener.Authentic

c# - 在 .NET 中动态更改 HttpClient.Timeout

我需要在发出请求后更改HttpClient.Timeout属性。当我尝试时,出现异常:Thisinstancehasalreadystartedoneormorerequests.Propertiescanonlybemodifiedbeforesendingthefirstrequest.有什么办法可以避免这种情况吗? 最佳答案 要改变这一点,您无能为力。这只是HttpClient实现中的默认行为。TheTimeoutpropertymustbesetbeforetheGetRequestStreamorGetResponseme

c# - System.Net.Http.HttpClient 缓存行为

我正在使用NuGet的HttpClient0.6.0。我有以下C#代码:varclient=newHttpClient(newWebRequestHandler(){CachePolicy=newHttpRequestCachePolicy(HttpRequestCacheLevel.CacheIfAvailable)});client.GetAsync("http://myservice/asdf");服务(这次是CouchDB)返回一个ETag值和状态代码200OK。返回了一个Cache-Controlheader,其值为must-revalidate更新,这是来自couchdb的

c# - HttpClient 上的 ObjectDisposedException

我有一个带有多个API调用的Windows通用项目。一种方法拒绝工作,即使我的其他调用像这样完美地工作。我已经尝试使用using关键字,认为它可以解决问题。函数:publicasyncTaskGetNewUser(stringuser_guid,OAuthTokensOAuth){StringuserguidJSON=VALIDJSON_BELIEVE_ME;using(varhttpClient=newHttpClient()){httpClient.DefaultRequestHeaders.Accept.Add(newMediaTypeWithQualityHeaderValue

c# - 在 Windows 窗体的 HttpClient 类中使用 DelegatingHandler - 尚未设置内部处理程序

首先,我收到的错误消息如下:尚未设置内部处理程序我正在编写一个自定义消息处理程序来处理我的API的身份验证cookie超时。例如,如果我的代码库调用API并收到401,那么它应该重试登录url以获取更新的cookie。我计划按如下方式完成此操作:publicclassCkApiMessageHandler:DelegatingHandler{privatereadonlystring_email;privatereadonlystring_password;privateconststring_loginPath="Account/Login";publicCkApiMessageHa

c# - HttpClient 和 ReadAsAsync<T>() 扩展方法

因此,我正在启动一个新的.Net4.0项目,并将使用公共(public)API进行一些工作。我计划使用MicrosoftHttpClient类,所以我安装了最新稳定版本的Microsoft.Net.HttpNuGet包(版本2.2.13)。我正在查看同事放在一起的一些POC代码,也使用HttpClient的NuGet包并注意到有这样的代码:HttpClientclient=newHttpClient();HttpResponseMessageresponse=client.GetAync("/uri").Result;DomainTyperesult=response.Content.

c# - 如何使 .net HttpClient 使用 http 2.0?

我有一个托管在IIS10(WindowsServer2016)上的asp.netWebAPI。当我从MicrosoftEdge浏览器对此发出GET请求时,我看到IIS日志中使用了HTTP2.02015-09-2021:57:59100.76.48.17GET/RestController/Native-443-73.181.195.76HTTP/2.0Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/42.0.2311.135+Safari/537.36+Edg

c# - 异步等待 Task.Run 与 HttpClient.GetAsync

我是c#5异步功能的新手。我试图了解这两种实现之间的区别:实现1:privatevoidStart(){foreach(varurlinurls){ParseHtml(url);}}privateasyncvoidParseHtml(stringurl){varquery=BuildQuery(url);//BuildQueryissomehelpermethodvarhtml=awaitDownloadHtml(query);//...MyTypeparsedItem=ParseHtml(html);SaveTypeToDB(parsedItem);}privateasyncTask