当前位置: 首页 > 知识库问答 >
问题:

为什么对同步请求使用HttpClient而不是HttpWebRequest

司徒斌
2023-03-14

在我的场景中,我必须将数据从一个web应用程序发送到一个有效的数据存储区webapi。请求必须是同步的,如果出现问题,我非常希望抛出异常,因为这意味着应用程序的关键部分不可用。

这是一个现有问题的衍生,但不是重复;为什么使用HttpClient进行同步连接?

但在我的场景中,我确实想要那种行为。虽然HttpClient有很多很好的用例,但有人能给出在我的场景中不使用HttpWebRequest的好理由吗?我使用的对象是否正确?更重要的是,为什么?

共有1个答案

邬英武
2023-03-14

HttpClient旨在对http协议提供更多的控制,而在HttpWebRequestWebClient中则没有那么直接。除了异步之外,HttpClient还有许多好处

HttpClient的优点

HttpClient最大的好处是插件体系结构,它允许您轻松地更改HTTP协议的底层行为。

    null

HttpClient对于有大量CPU空闲时间的桌面应用程序没有什么好处。

 类似资料:
  • 如果有人能提供任何线索,我将不胜感激。我不是一个为了新技术而使用新技术的人。

  • 我刚刚发现,在react函数都是异步的,或者在调用它的函数完成后调用。 现在这两样东西很难消化 在博客中,函数是在函数内部调用的,但是触发函数的原因并不是被调用函数所知道的。 他们为什么要让异步,因为JS是单线程语言,而且这个setState不是WebAPI或服务器调用,所以只能在JS的线程上完成。他们这样做是为了使重新呈现不会停止所有事件侦听器和其他东西,还是有其他设计问题。

  • 那么,回到问题上来,鉴于微软建议不要在新的开发中使用WebRequest而是使用只提供异步API的HttpClient,我该怎么办呢? 这是我正在做的一些伪代码... 如何实现ProcessStuff()?

  • 问题内容: 我在节点和角度的CORS上遇到了问题,并为true添加此选项解决了我的问题。但是我找不到有关它是什么以及它在做什么的信息。请有人可以解释吗? 问题答案: 简短答案: 使您的浏览器在XHR请求中包含cookie和身份验证标头。如果您的服务依赖于任何cookie(包括会话cookie),则仅在使用此选项集的情况下才能使用。 更长的解释: 当您向其他原始服务器发出Ajax请求时,浏览器可能会

  • 问题内容: 这是异步请求的数据作出反应的文档显示的页面应该在消耗事件,而初始化状态对象为默认 空 状态。 有什么理由吗?也许不希望getInitialState这样做或有其他目的?是由于库的某些内部逻辑引起的吗? 主持人和回答者注意:这不是基于意见的问题:如果存在原因,那将是答案,但是,对我的问题的一个正确的正确答案也可能是:“不,没有任何特定的理由,做任何你觉得更好的事情” 问题答案: 应该是道

  • 问题内容: 我正在使用HttpClient发出发布请求。我回到405方法不被允许。在提琴手中捕获轨迹时,它作为GET而不是POST发出! 我知道异步/等待问题。这是显示问题的简化示例。 是否存在某种可能会影响此的web.config或machine.config设置?其他请求(通过RestSharp发送)正确发送了帖子 这是提琴手捕获的东西。在提琴手中运行跟踪也会返回405(如预期)。手动将其切换