如何在 C# 中发出 HTTP 请求 [重复]

2023-12-19

我如何在 Windows 中用 C# 发出卷曲请求或

我想使用此参数发出网络请求,它应该收到有效的响应

request

curl 'http://www1.bloomingdales.com/api/store/v2/stores/367,363,6113,364,4946?upcNumber=808593890516' -H 'Cookie:shippingCountry=US;' -H 'Accept-Encoding: gzip, deflate, sdch' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/49.0.2623.108 Chrome/49.0.2623.108 Safari/537.36' -H 'Accept-Language: en-US,en;q=0.8' -H 'Accept: application/json, text/javascript, */*; q=0.01' --compressed

在 Perl 中我会简单地做

my $page = `curl --silent 'http://www1.bloomingdales.com/api/store/v2/stores/367,363,6113,364,4946?upcNumber=808593890516' -H 'Cookie:shippingCountry=US;' -H 'Accept-Encoding: gzip, deflate, sdch' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/49.0.2623.108 Chrome/49.0.2623.108 Safari/537.36' -H 'Accept-Language: en-US,en;q=0.8' -H 'Accept: application/json, text/javascript, */*; q=0.01' --compressed 2>/dev/null`;

Then

my $page

结果存储在上面的变量中。

如何在c#中做类似的事情???


我强烈推荐使用新的Http客户端 https://msdn.microsoft.com/en-us/library/system.net.http.httpclient(v=vs.110).aspx.

请阅读本答案底部的注释

摘自 MSDN。

static async void Main()
{

    // Create a New HttpClient object.
    HttpClient client = new HttpClient();

    // Call asynchronous network methods in a try/catch block to handle exceptions
    try 
    {
       HttpResponseMessage response = await client.GetAsync("http://www.contoso.com/");
       response.EnsureSuccessStatusCode();
       string responseBody = await response.Content.ReadAsStringAsync();
       // Above three lines can be replaced with new helper method below
       // string responseBody = await client.GetStringAsync(uri);

       Console.WriteLine(responseBody);
    }  
    catch(HttpRequestException e)
    {
       Console.WriteLine("\nException Caught!");    
       Console.WriteLine("Message :{0} ",e.Message);
    }

    // Need to call dispose on the HttpClient object
    // when done using it, so the app doesn't leak resources
    client.Dispose(true);
 }

由于这个答案最初是写的,所以有一些关于使用 HttpClient 的注意事项。 (TLDR;它应该是单例)

按预期使用 HttpClient(因为你不是) https://www.codeproject.com/Articles/1194406/Using-HttpClient-As-It-Was-Intended-Because-You-re

在 WebAPI 客户端中每次调用创建新的 HttpClient 的开销是多少? https://stackoverflow.com/questions/22560971/what-is-the-overhead-of-creating-a-new-httpclient-per-call-in-a-webapi-client

您错误地使用了 HTTPClient,它会破坏您的软件的稳定性 https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C# 中发出 HTTP 请求 [重复] 的相关文章

  • 是否需要销毁运算符删除的形式才能真正销毁对象?

    C 20 添加了破坏形式operator delete区别于std destroying delete t范围 它导致delete表达式在调用之前不再销毁对象operator delete 目的是在显式调用对象的析构函数和释放内存之前 允许
  • 如何使用 openSSL 函数验证 PEM 证书的密钥长度

    如何验证以这种方式生成的 PEM 证书的密钥长度 openssl genrsa des3 out server key 1024 openssl req new key server key out server csr cp server
  • 在 C 语言中,为什么数组的地址等于它的值?

    在下面的代码中 指针值和指针地址与预期不同 但数组值和地址则不然 怎么会这样 Output my array 0022FF00 my array 0022FF00 pointer to array 0022FF00 pointer to a
  • 无法继承形状

    为什么我不能使用继承 a 的类Shapes class http msdn microsoft com en us library ms604615 28v vs 90 29 我需要延长Rectangle具有一些方法的类 但我想以与使用相同
  • strlen() 编译时优化

    前几天我发现你可以找到编译时strlen使用这样的东西 template
  • Boost ASIO 串行写入十六进制值

    我正在使用 ubuntu 通过串行端口与设备进行通信 所有消息都必须是十六进制值 我已经在 Windows 环境中使用白蚁测试了通信设置 并得到了我期望的响应 但在使用 Boost asio 时我无法得到任何响应 以下是我设置串口的方法 b
  • Selenium - C# - Webdriver - 无法找到元素

    在 C 中使用 selenium 我试图打开浏览器 导航到 Google 并找到文本搜索字段 我尝试下面的 IWebDriver driver new InternetExplorerDriver C driver Navigate GoT
  • 混合模型优先和代码优先

    我们使用模型优先方法创建了一个 Web 应用程序 一名新开发人员进入该项目 并使用代码优先方法 使用数据库文件 创建了一个新的自定义模型 这 这是代码第一个数据库上下文 namespace WVITDB DAL public class D
  • 为什么这个 makefile 在“make clean”上执行目标

    这是我当前的 makefile CXX g CXXFLAGS Wall O3 LDFLAGS TARGET testcpp SRCS main cpp object cpp foo cpp OBJS SRCS cpp o DEPS SRCS
  • 测量进程消耗的 CPU 时钟

    我用 C 语言编写了一个程序 它是作为研究结果创建的程序 我想计算程序消耗的确切 CPU 周期 精确的循环次数 知道我怎样才能找到它吗 The valgrind tool cachegrind valgrind tool cachegrin
  • 保证复制省略是否适用于函数参数?

    如果我理解正确的话 从 C 17 开始 这段代码现在要求不进行任何复制 Foo myfunc void return Foo auto foo myfunc no copy 函数参数也是如此吗 下面的代码中的副本会被优化掉吗 Foo myf
  • 对于 C# Express 用户来说,有哪些好的工具可以识别可能重复的代码? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 也可以看看 有什么工具可以检查重复的 VB NET 代码吗 https stackoverflow c
  • MySQL 连接器 C++ 64 位在 Visual Studio 2012 中从源代码构建

    我正在尝试建立mySQL 连接器 C 从源头在视觉工作室2012为了64 bit建筑学 我知道这取决于一些boost头文件和C 连接器 跑步CMake生成一个项目文件 但该项目文件无法编译 因为有一大堆非常令人困惑的错误 这些错误可能与包含
  • Xamarin Forms Binding - 访问父属性

    我无法访问页面的 ViewModel 属性以便将其绑定到 IsVisible 属性 如果我不设置 BindingContext 我只能绑定它 有没有办法可以在设置 BindingContext 的同时访问页面的 viewmodel root
  • C++ 指针引用混淆

    struct leaf int data leaf l leaf r struct leaf p void tree findparent int n int found leaf parent 这是 BST 的一段代码 我想问一下 为什么
  • 如何从 Windows Phone 7 模拟器获取数据

    我有一个 WP7 的单元测试框架 它在手机上运行 结果相当难以阅读 因此我将它们写入 XDocument 我的问题是 如何才能将这个 XML 文件从手机上移到我的桌面上 以便我可以实际分析结果 到目前为止 我所做的是将 Debugger B
  • 声明一个负长度的数组

    当创建负长度数组时 C 中会发生什么 例如 int n 35 int testArray n for int i 0 i lt 10 i testArray i i 1 这段代码将编译 并且启用 Wall 时不会出现警告 并且似乎您可以分配
  • ContentDialog Windows 10 Mobile XAML - 全屏 - 填充

    我在项目中放置了一个 ContentDialog 用于 Windows 10 上的登录弹出窗口 当我在移动设备上运行此项目时 ContentDialog 未全屏显示 并且该元素周围有最小的填充 在键盘上可见 例如在焦点元素文本框上 键盘和内
  • 如何为有时异步的操作创建和实现接口

    假设我有数百个类 它们使用 计算 方法实现公共接口 一些类将执行异步 例如读取文件 而实现相同接口的其他类将执行同步代码 例如将两个数字相加 为了维护和性能 对此进行编码的好方法是什么 到目前为止我读到的帖子总是建议将异步 等待方法冒泡给调
  • 嵌入式linux编写AT命令

    我在向 GSM 模块写入 AT 命令时遇到问题 当我使用 minicom b 115200 D dev ttySP0 term vt100 时它工作完美 但我不知道如何在 C 代码中做同样的事情 我没有收到任何错误 但模块对命令没有反应 有

随机推荐

  • 重新计算风格:为什么这么口吃?

    假设我们有一段代码将一系列相似的元素注入到 DOM 中 像这样的东西 var COUNT 10000 elements Object keys Array COUNT join split var d document root d get
  • AS3 最大文本字段宽度

    如何设置Textfield的最大宽度 我需要自动调整宽度 直到达到最大宽度 因此长文本会断行 var maxWidth Number 200 textField multiline false textField wordWrap fals
  • devicePixelRatio可以小于1吗

    由于某种原因 任何小于 1 的像素比值在我的渲染算法中都不起作用 值 0 没有意义 但 0 5 则有意义 有没有可能devicePixelRatio返回 0 到 1 之间的值 如果您将浏览器缩放设置为小于 100 则 DPR 可能小于 1
  • 制作(从源代码安装)python 而不运行测试

    我从源码 tar 编译 python 一切正常 但测试运行了 2 小时和两次 如何绕过这些测试 0 16 20 178 405 test inspect 0 16 26 179 405 test int 0 16 27 180 405 te
  • 如何在 tvOS 中打开 GameCenter

    如何在 tvOS 中打开游戏中心排行榜 我已将此代码用于我的 iPhone 游戏 排行榜标识符 在 tvOS 上不可用 我计划在 AppleTV 上使用相同的排行榜 这将是同一个游戏 非常感谢您的帮助 斯特凡 IBAction func h
  • xsl 在 xml 中定义

    我在 movie xml 中的前几行如下
  • 当子文件夹具有相同名称时,Airflow Packaged Dags(压缩)会发生冲突

    我们正在建立一个 Airflow 框架 多个数据科学家团队可以在其中协调他们的数据处理管道 我们开发了一个 Python 代码库来帮助他们实现 DAG 其中包括各种包和模块中的函数和类 还有 Operator 子类 每个团队都会将自己的 D
  • 语言验证消息

    我在用ASP NET MVC 5 我正在尝试获取消息ValidationMessageFor法语 xxx 字段为必填项 gt Le champ xxx est manquant 我已经在两台服务器上部署了我的网站 Windows Serve
  • 如何检测和调试多线程问题?

    这是后续这个问题 https stackoverflow com questions 493311 how to write safe correct multi threaded code in net 我在这一点上没有得到任何意见 这是
  • 使用 websocket 处理连接丢失

    我最近设置了一个工作正常的本地 WebSocket 服务器 但是我在理解应该如何处理客户端或服务器都不是故意启动的连接突然丢失时遇到了一些麻烦 即 服务器断电 以太网电缆拔出等 我需要客户端知道连接是否在 10 秒内丢失 客户端 连接很简单
  • 如何将h1和h2写在同一行?

    我有一个页面 我只想制作一个标题 该标头是一个 h1 文本左对齐 并且 h2 右对齐 在同一行 在它们之后 hr 到目前为止 我的代码如下所示 如果您测试它 您会发现它是错误的 h1 align left Title h1 h2 align
  • 如何以整数形式反转 RGB 颜色?

    给定 32 位无符号整数形式的 RGB 颜色 例如 0xFF00FF 如何反转它 获得负颜色 而不使用位移操作提取其各个分量 我想知道是否可以仅使用按位运算 AND OR XOR 更准确地说 使用最少指令数的算法是什么 我觉得就是这么简单
  • 如何从 JSESSIONID 加载 Java HttpSession?

    我想获得JavaHttpSession通过 JSESSIONID 是否可以 如果是 怎么办 您基本上需要手动将它们全部收集在一个Map https docs oracle com en java javase 17 docs api jav
  • android应用程序可以检查手机的版本吗

    我想编写一个使用动态壁纸的应用程序 仅版本 7 及更高版本支持此功能 应用程序是否可以检查 Android 手机的版本 并根据版本运行不同的代码 例如使用动态壁纸或静态背景 你有一个代码示例吗 这需要特殊权限吗 假设您需要 Android
  • 使用pauseOnConnect 通过 https 传递连接

    我正在使用pauseOnConnect选项开启net createServer 允许我将连接传递给我使用集群创建的工作人员 server net createServer pauseOnConnect true function conne
  • 使用Spring boot和javafx会消耗大量内存吗?

    我愿意在我的 JavaFX 应用程序中使用 Spring boot 技术 以获得其依赖注入的优势 但我想知道对内存的影响 因为你知道任何带有 组件 符号的类都会被加载到 MetaSpace 因为 Spring boot 会从中创建一个静态对
  • Laravel 的 5.3 通行证和 api 路线

    我正在使用 Laravel Framework 版本 5 3 9 新下载的内容没有通过作曲家添加任何内容 除了 laravel passport 1 0 我做了中建议的所有事情docs https laravel com docs mast
  • Visual Studio 2010 代码覆盖率 - 找不到由检测实用程序创建的备份文件

    我尝试在 VS 2010 中运行代码覆盖率 但遇到以下错误 不生成覆盖范围信息 代码覆盖率就地检测 无法完全备份二进制文件 MyProject dll 找不到由检测实用程序创建的备份文件 MyProject dll orig 检查为测试运行
  • 使用 PHP/MySQL 比较标签组以查找相似性/分数

    如何将一组标签与数据库中另一个帖子的标签进行比较以获取相关帖子 我想做的是将帖子上的一组标签与另一个帖子的标签进行比较 但不是每个标签单独 假设您想根据帖子中的标签获取真正相关的项目 然后从最相关到 最不相关的顺序显示它们 每次都必须显示三
  • 如何在 C# 中发出 HTTP 请求 [重复]

    这个问题在这里已经有答案了 我如何在 Windows 中用 C 发出卷曲请求或 我想使用此参数发出网络请求 它应该收到有效的响应 request curl http www1 bloomingdales com api store v2 s