当前位置: 首页 > 编程语言 > C#

HttpClientRetrieveAllHeadersShare

时间:2023-04-10 20:59:15 C#

HttpClientRetrieveAllHeaders目前,我正在研究API包装器。如果我发送了错误的消费者密钥,服务器将在标头中返回状态403Forbidden。它还将传递自定义标头。我如何实际检索这些自定义标头?这是从服务器收到的响应。缓存控制:私有日期:2013年5月1日星期三14:36:17GMTP3P:policyref="/w3c/p3p.xml",CP="ALLCURaADMaDEVaOURINDUNICOMNAVINTSTAPRE"服务器:Apache/2.2.23(亚马逊)状态:403ForbiddenX-Error:消费者密钥无效。X-Error-Code:152X-Powered-By:PHP/5.3.20Connection:keep-alive我需要检索X-Error和X-Error-Code。目前,我正在使用HttpClient类来处理请求。如果我在VSStudio2012的“快速观察”下看到标头响应,我可以这样找到它((System.Net.Http.Headers.HttpHeaders)(response.Headers)).headerStore["X-Error-Code"]。ParsedValue还有其他方法可以做到这一点吗?编辑:无法通过代码访问headerStore,因为这是一个私有字段。我只能通过“快速监视”窗口访问它。这是我的请求片段:varresponse=await_httpClient.PostAsync("/v3/oauth/request",content);好吧,HttpResponseMessage.Headers返回一个HttpResponseHeaders引用,所以你应该能够使用GetValues()stringerror=response.Headers.GetValues("X-Error").FirstOrDefault();stringerrorCode=response.Headers.GetValues("X-Error-Code").FirstOrDefault();由于问题的标题是“检索所有标题”,我想添加一个答案。HttpClient方法返回的HttpResponseMessage有两个标头属性:两个对象都实现IEnumerable>,因此您可以轻松地将所有标头组合成以下内容:varresponseMessage=awaithttpClient.GetAsync(url);varheaders=responseMessage.Headers.Concat(responseMessage.Content.Headers);这只是我在尝试查找不存在的标头时发现的一个问题。您应该使用TryGetValues而不是GetValues,因为在运行时如果找不到标头,它会抛出异常。您将使用这样的代码:IEnumerablecookieHeader;response.Headers.TryGetValues("Set-Cookie",outcookieHeader);这对我有用:以上是C#学习教程:HttpClient获取所有分享的headers的完整内容,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注——(String[])response.Headers.GetValues("X-Error"))[0]本文整理自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢