c# - 进行 cURL GET 调用是 C# 和 .Net
问题描述
我过去从未使用过 cURL。我非常精通 c# 和 .net 以及 javascript/jquery,但我正在尝试使用下面的 cURL 调用并通过 c# 和 MVC 将其转换为 HttpClient 请求,然后解析结果并在页面上显示它们的样式。我永远不会向 API 上传或发布任何内容,只检索活动数据并在 Web 端解析它。
电话是;
curl -k -H "Content-Type: application/json"
-H 'x-mjf-organization-id: 9'
-H 'x-mjf-api-key: 00000-9999-22222-2222-222'
https://test-site.info.com//v1/info
根据第 3 方主机提供的组织 ID 和 API 密钥,我收到的所有数据都将独立于我的组织。我真的不确定从哪里开始,我一直在挖掘很多关于 cURL 的其他帖子,但大多数都是用于上传和发布数据,而不仅仅是检索和解析。我将不胜感激任何好的参考资料。谢谢你
解决方案
这应该或多或少等同于:
using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Get, "");
//this header doesn't really make sense for a GET request...
//request.Headers.Add("Content-Type", "application/json");
request.Headers.Add("x-mjf-organziation-id", "9");
request.Headers.Add("x-mjf-api-key", "...");
var response = await client.SendAsync(request);
如果-k
确实有必要,您可以设置全局证书处理,忽略所有证书错误,像这样
ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, err) => true;
注意:您应该仅出于测试目的而不是在生产中执行此操作。
如果您只想为此禁用证书检查,HttpClient
您可以通过使用以下配置创建它来配置它HttpClientHandler
:
var handler = new HttpClientHandler();
handler.ServerCertificateCustomValidationCallback = (s, cert, chain, err) => true;
using var client = new HttpClient(handler);
[...]
推荐阅读
- apache-kafka - Kafka事务如何模拟错误以回滚事务
- node.js - 如何从连接表额外列 bookshelf.js 中获取数据
- java - 为什么在对应用程序进行 docker 化时 application.properties 中的路径会发生变化?
- java - 在 Tomcat 中运行 Camel 应用程序时,我在 CamelServlet 实现上收到 ClassCastException
- vue.js - vue 双花括号打印/回显输入搜索词
- javascript - javascript数组排序 - 没有按预期工作
- quarkus - Quarkus 使用动态端点调用 Rest API
- python - 从字符串表示“typing.List[Something]”获取类型,例如 typing.List[Something]
- python - “numpy.ndarray”对象没有属性“reset_index”
- sql - 使用与 case 语句配对的查询结果来分配输出