问题标签 [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# - 等待 base.SendAsync 后自定义 DelegatingHandler 永远不会返回
我正在使用 HttpClient 构建 API 使用者。因为提供者要求消费者使用 Digest Authentication 进行身份验证,所以我需要编写一个自定义 DelegatingHandler,如下所示:
我创建一个 HttpClient 并将我的自定义 DelegatingHandler 添加到消息处理程序 pineline
这样做之后,我的消费者看起来就像永远运行。当我在上面的代码行 await base.SendAsync 之后添加断点时,我看到代码永远不会返回,因此我无法检查响应是否获得 401 未授权以提取摘要授权标头详细信息。API 提供者没有任何问题,因为我已经使用传统的 WebHttpRequest 支持 Digest Authenticate 成功构建了另一个 API 消费者站点,并且它运行良好。
重要提示:如果我切换到将消费者编写为控制台应用程序,那么它运行良好。所以,我不确定,但我认为这是在异步模式下运行时与 ASP.NET 线程有关的问题?
我做错了什么吗?
c# - 添加 HttpClient 标头会生成带有一些值的 FormatException
这发生在针对 Google Cloud Messaging 进行编码的上下文中,但适用于其他地方。
考虑以下:
和
两者都生成 FormatException:
System.FormatException : value key=XXX' 的格式无效。
解决方案是删除等号。
深入研究反射器显示在添加新标头值时会运行大量验证和解析代码。为什么这一切都是必要的?这个客户不应该让我们走开吗?
您如何转义等号以便添加此值成功?
asp.net-mvc - 控制台应用程序 HttpClient 发布到 mvc web api
我有一个从 Visual Studio 2012 模板构建的默认 mvc web api 实例。它在默认的 ValuesController 中具有以下路由和 post 方法 - 除了 Post 方法的内容之外,MVC 站点在初始创建时未修改。此外,我正在使用 .NET 框架 4.0,因为我计划以 Azure 为目标。
注册方法
和 Post 方法
我创建了一个控制台应用程序,它使用 HttpClient 来模拟向服务发布,但不幸的是,进入 Post 的“值”始终为空。Post 方法在 HttpClient 上的 PostAsync 调用之后成功命中。
我不清楚如何映射我的请求以使值包含我传入的 StringContent ...
我是 MVC web api 和使用 HttpClient 的新手 - 任何为我指明正确方向的帮助将不胜感激。
c# - 通过 Web API 操作使用 HttpClient 调用外部 HTTP 服务
我在 .Net Framework 4.5 上运行的 ASP.Net MVC 4 Web Api 项目中使用 HttpClient 调用外部服务
示例代码如下(忽略返回值,因为这是测试调用外部服务的示例代码):
虽然私有方法中的代码确实有效,但我遇到的问题是控制器 Get() 调用 GetResponse() 但它不等待结果,而是立即执行返回结果 = null。
我还尝试使用 WebClient 使用更简单的同步调用,如下所示:
效果很好。
我究竟做错了什么?为什么 Get() 不等待异步示例中的私有方法完成?
c# - 使用 HttpClient 获取响应
我正在尝试使用 HttpClient 从 3rd 方 API ( Rackspace Cloud Files ) 读取响应内容。这是我到目前为止所拥有的。我似乎无法获取内容。
这给了我“没有'MediaTypeFormatter'可用于读取媒体类型为'text/html'的'String'类型的对象。” 错误。
我需要检索 Rackspace 文档(示例)中所述的响应详细信息:
我如何得到回应?
当我使用 ReadAsStringAsync 时,它会为我提供页面的 HTML 源代码。
谢谢你。
c# - 在 .net 4.5 中尝试使用 HttpClient 使 cookie 无法响应
我有以下代码可以成功运行。我不知道如何从响应中获取 cookie。我的目标是我希望能够在请求中设置 cookie 并从响应中获取 cookie。想法?
这是完整的答案:
c# - 在 WinRT 中从 UI 调用 HttpClient - 没有任何反应
我正在尝试在 Windows 8 Metro App 中获取网站的内容。我仍然对异步和等待方法有点困惑。
但这就是我所拥有的:
不幸的是,什么也没有发生。如果尝试调试它,它只会在 GetAsync() 处停止。
我是否需要使 HelloButton_Click 函数也异步?
即使我等待函数 GetPage() 的完成?
我可以直接从 GUI 线程调用网络请求吗?
c# - 带有 x509 证书的 HttpClient 请求适用于调试,但在生产中失败(403 禁止)
我有一个黑盒服务,我必须使用返回 xml 的简单休息命令来调用它。
他们向我们颁发了一个证书,该证书必须在 IE 中运行并安装到 IE 的证书部分。根据他们的指示,我将它与整个链一起导出为带有密码的 pfx。
在证书直接颁发到的机器上,代码中一切正常
(我已将证书存储在资源中,但它可以正常加载,并且从文件加载它在开发人员机器上也可以正常工作。)我还将它导入服务器上的 IE 以防万一。显然,这可能是在错误的证书存储下,但我无法弄清楚如何在全局范围内加载它。我可以告诉你,相同的 REST GET 在服务器上的 IE 中工作,就像在开发人员机器上一样。它只是在代码中失败。)
在生产中,同样的代码会抛出 403 禁止。
生产(实际上是一个测试版服务器)实际上与开发机器位于相同的 nat 后面,因此他们看到相同的 IP 通过等。
任何想法为什么它会在服务器上而不是在开发人员框中失败?
谢谢!
c# - XML序列化和类别名?可能的?
我正在使用 HttpClient 并进行 GetAsync 调用。然后我通过调用来确保调用成功response.ErrorSuccessStatusCode()
。
然后我打电话response.Content.ReadAsAsync<WikiResponse>()
。调用 ReadAsAsync 时出现错误,因为第 3 方 REST 服务正在传回,并且 XML 响应称为“Response”而不是“WikiResponse”。此 WikiResponse 是由另一个第 3 方创建的。我无法创建一个名为 Response 的对象,因为已经有一个名为 this 的类与其他 DTO 处于相同的“级别”,但具有不同的类结构。
有没有办法让 WikiResponse “适合” 响应?除了类名之外,XML 和类结构是相同的。
感谢您的快速回复!
更新:
我试过[XmlRoot(ElementName = "Response")]
在课堂上使用,但没有用。
这是我得到的错误:
asp.net-mvc-4 - 将 WebApp 用户(Windows 身份验证)委派给 MVC Web API 失败
我们有一个具有以下站点结构的 IIS 7.5:
WebApp (ASP.NET Forms) = 网站 (http://WebApp)
WebAPI (MVC 4 Web API) = 文件夹转换为应用程序 (http://WebApp/webapi)
两者都在同一个 ApplicationPool 下运行。
两者都具有相同的身份验证设置:
- ASP.NET 模拟(经过身份验证的用户)
- Windows 身份验证(提供者:协商)
两个 web.configs 都定义:
WebApp 使用 HttpClient 从 WebAPI 调用 WebService:
WebAPI 使用 MS 企业库连接到数据库。
当我在本地运行时一切正常,当我在 IIS 7.5 服务器上部署它并开始远程调试时,我在 Web API 中的 HttpContext 当前用户是应用程序池标识,而不是登录到 Web 应用程序的用户。我当然希望它是登录到 WebApp 的用户,因为我想使用基于 AD 帐户(组)的安全性。
请任何人都可以提供一些建议以使其正常工作。提前致谢。