问题标签 [dotnet-httpclient]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何从 HttpRequestException 获取 JSON 错误消息
我有一种情况,我必须HttpResponseMessage
在语句中提取一个 Response(),catch
但我认为不能完成(await
在 catch 中使用)。另外,如果我在 catch 之后执行此操作,则HttpResponseMessage
消息会“已处理”。代码:
在这里可以做什么?
使用以下方法更新
以前的方法HttpWebRequest
:
dotnet-httpclient - Windows 8 Httpclient 基本认证
我是这个论坛的新手。
我正在尝试使用 Httclient 为我的 Windows 应用程序进行基本身份验证。
我有两个问题:
我需要添加标题内容类型和用户代理。不知道如何添加它们。有人可以帮帮我。
作为回应,我得到了空值。知道为什么吗?
问候,
TM值
c# - 为什么使用 HttpClient 进行同步连接
我正在构建一个类库来与 API 交互。我需要调用 API 并处理 XML 响应。我可以看到使用HttpClient
异步连接的好处,但我所做的是纯粹同步的,所以我看不到使用HttpWebRequest
.
如果有人能阐明任何观点,我将不胜感激。我不是为了新技术而使用新技术的人。
c# - C# HttpClient.SendAsync HttpMethod.Get - 如何使用附加值更新 cookie
我正在尝试使用 C# HttpClient 类发送带有 cookie 的 Http Get 消息。
HttpClient.GetAsync
只接受 URL。所以,我不能使用那种方法。我发现该HttpClient.SendAsync
方法让我可以通过以下方式发送 cookie。
但是在执行时,它会说 -
“无法发送具有此动词类型的内容主体”
我知道 Get 消息是获取数据而不是发布数据的理想选择。但在我的情况下,cookie 存储在客户端以保存客户端首选项,我必须通过 Http Get 消息(通过 HttpClient 类)将它们发送给客户端。
我不想重新初始化 HttpClient 对象;这将改变它的 SessionID。我不想将内容添加到获取消息。我只是问是否有任何其他方法可以使用附加值更新获取消息 cookie。
请告诉我如何处理这个问题。提前感谢您的帮助。
c# - HttpClient - 如何使用附加值更新 http 消息头 cookie
我必须使用 WebAPIHttpClient
类来发送和接收HttpRequestMessage
和HttpResponseMessage
.
我正在通过同一个HttpClient
类实例跟踪多个请求(即对特定 sessionID 的多个请求)。第一个 Get 请求创建 SessionID;它HttpResponseMessage
有 sessionID、cookie header 等元素。
对于第二个请求,我必须在第一个请求消息的标头中向返回的 cookie 添加附加数据。HttpClient
类仅提供两种方法用于 Get -GetAsync(URL)
和SendAsync(HttpRequestMessage)
.
HttpClient
类只为 GET 消息提供了两种方法——GetAsync
它只接受 URI,因此似乎没有用。SendAsync
需要HttpRequestMessage
,在这里你不能在HttpClientHandler
不重新初始化HttpClient
类对象的情况下使用。
如何更新 cookie 标头并向 Get 请求消息添加其他信息?
检查以下示例获取在 Fiddler 中捕获的消息
索取 1 个样品
索取 2 个样品
请不要,我正在使用 HttpClient 对象“客户端”的现有副本。我无法使用 HttpMessageHandler 重新初始化它。这样做会创建新的 SessionID,这是不需要的。我正在使用 SessionID 在后续的 Get/Post 请求之间进行跟踪。此外,它是 C# 控制台应用程序,可以像浏览器一样模拟 Web 请求。如果您有任何其他问题,请告诉我。感谢大家的相关评论。
方法#1 HttpRequestMessage GETRequest = new HttpRequestMessage(HttpMethod.Get, completeUrl); string additionalCookVal = "viewall=1&grades=&materialType=&itemSearchControl0=itm_att_Item FORMAT,SIM&itemSearchControl1=itm_att_Learning Modalities&itemSearchControl2=itm_att_Flesch-Kincaid Grade Level Readability&text="; GETRequest.Headers.Add("Cookie1", additionalCookVal); //这被静默忽略 HttpResponseMessage GETResponse = client.SendAsync(GETRequest).Result;
方法#2 var content = new FormUrlEncodedContent(additionalCookVals); //additionalCookVals 是一个 Dictionary 对象 HttpRequestMessage GETRequest = new HttpRequestMessage(HttpMethod.Get, completeUrl); GETRequest.Content = 内容;HttpResponseMessage GETResponse = client.SendAsync(GETRequest).Result; // 无法将内容添加到获取消息中。
c# - 无法从 WinRT 连接到远程服务器
我正在制作一个应用程序,它基本上只需要将一段 XML 发送到服务器并返回。我遇到了麻烦但是让这个工作并得到非常奇怪的错误
我发布到的服务器不是本地主机,而是我本地网络上的一台计算机。我得到这个错误深深地嵌套:
我的应用程序具有 Internet 客户端功能。我可以通过其他商店应用程序访问我的本地网络和互联网。我可以在 Firefox 中访问资源以获得正确的行为。我没有启用防火墙,也没有阻止这些端口的防病毒软件
什么可能导致这个晦涩的错误?我该如何解决?
c# - HttpClient PostAsync to Blogger API
I am using the following API to allow me to interact with Google Blogger. I need to insert a post into the users blog. However I am having trouble with my PostAsync functionality. I get a 401 telling me that my request isn't authorized despite having an API Key, however I think I may not be properly inserting my OAuth token.
I have the following code,
This is the code where I set up my authorization header, (note the key there is fake but is the same form as what i think is the OAuth token)
And this is my PostAsync function
Can anyone tell me where I am going wrong? Cheers.
[UPDATE]
I amen't sure whether the authorization has to include the string bearer in it.
c# - 如何在 C# (.NET 4.5) 中为 HttpClient.GetAsync(URI) 创建回调?
我想为 Google 搜索创建一个简单的异步请求。
根据谷歌的说法,最简单的方法是使用他们的 JSON API 和简单的 curl 请求
我想提取结果的前 5 页并将每个结果的 URL 添加到数组中。我发现很难在 HttpClient.GetAsync 上找到任何解释清楚的教程。我没有比这更进一步的了:
我想这应该启动一个任务,这样我就不会阻塞主线程,但是如何在请求完成时注册一个回调方法?
asp.net-mvc - HMAC 与 ASP.NET WebAPI 使用 Cuong 的解决方案
我今天花了一些时间查看 C# 中的各种 HMAC 实现,以了解即将推出的 WebAPI 项目。我想从一些现有的代码开始,只是为了在我从头开始编写它或根据我的需要修改它之前更好地了解它。
这里和网络上都有很多很棒的文章和帖子。但是,我已经到了需要一些指示的地步,并且非常感谢一些见解。
我从 Cuong 的帖子开始:如何保护 ASP.NET Web API。
我知道我必须扩展它,因为我想同时支持 json 和 formencoded 数据。我的测试客户端也是使用 HttpClient 用 C# 编写的,我创建了一个空的 WebAPI 项目并使用 ValuesController。
以下是我的观察和问题:
发布:为了让 Cuong 的代码正常工作(验证成功),我的 POST 需要在 URL 中包含参数,但是为了将值发送到我的控制器,我需要将它们包含在正文中。这对于这种类型的身份验证是否正常?在这个特定的例子中,我正在散列的消息是 http://:10300/api/values?param1=value1¶m2=value2。现在我可以手动解析查询字符串以获取它们,但是为了通过绑定将值获取到我的控制器,我还必须:
/li>
否则,我的参数在 ValuesController 的发布操作中始终为空。
我计划扩展代码以包含随机数。在随机数、时间戳和动词的组合之间,对于安全散列来说足够了吗?真的需要散列消息吗?
我尝试(非常不成功)扩展代码以支持 json 以及形成编码数据,但我一定遗漏了一些明显的东西。
Cuong 使用 Authentication 和 Timestamp 标头,而不是将签名和时间戳放在查询字符串中。一种方法比另一种方法有好处吗?我读过的大多数文章都在查询字符串本身中包含它们。
代码看起来很棒,我在这里有点不合时宜。我可能更安全(更理智?)只是从头开始写它以欣赏它的细微差别。也就是说,如果有人可以对我所看到的内容有所了解,那就太好了。
归根结底,我希望能够使用 WebAPI 框架的内置授权机制来简单地为方法/控制器赋予属性,能够接受表单编码和 json 数据,并为复杂类型合理地模型绑定。
* 更新 *
我今天做了更多的工作,下面是我的 nUnit PostTest 中的代码。我想出了如何在不将它们包含在正文和查询字符串中的情况下获取值(下面的代码)。
我还弄清楚了它的模型绑定部分。这里有一篇很棒的文章:http ://www.west-wind.com/weblog/posts/2012/Mar/21/ASPNET-Web-API-and-Simple-Value-Parameters-from-POSTed-data解释了POST 是如何工作的,我能够让它与我自己设计的模型以及 FormDataCollection 对象一起工作。
现在我想知道是否值得添加 json 编码的消息,或者标准化 FormUrlEncoding 是否是要走的路。此外,客户端通知是否足够,或者我应该实现服务器端通知?服务器端通知是否将所有对服务的调用加倍(第一个抛出 401,第二个包含带有通知的有效负载?
asp.net-mvc - 如何扩展(System.Net.Http)HttpClient Http Verbs?
是否可以向 System.Net.Http HttpClient 添加新的任意 HTTP 动词?
有问题的案例:
我为基于 MVC 的文档管理系统开发了一个 WebAPI。
API 支持:GET - 获取文档,POST - 创建新文档,PUT - 更新文档,DELETE - 删除文档。
我还需要支持:PRINT - 打印文档,EMAIL - 通过电子邮件发送文档。
在 MVC 端添加 VERB 很容易。添加 [AcceptVerbs("PRINT")] 装饰就完成了。
但我需要指导使用我的 API 的开发人员如何访问它。由于他们使用的是 HttpClient,我的问题是:如何使用 HttpClient 使用这些 VERB?
德罗