首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C# http请求在内容中添加json对象

C# http请求在内容中添加json对象
EN

Stack Overflow用户
提问于 2022-06-12 17:15:54
回答 1查看 756关注 0票数 -1

我正在向外部api发送http请求帖子。我正在构造一个json对象以添加到请求体中。如何在发送之前检查添加的正文/内容是否正确。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public async void TestAuthentication()
{
   var client = new HttpClient();

   var request = new HttpRequestMessage()
   {
       RequestUri = new Uri("http://test"),
       Method = HttpMethod.Post
   };
   var jsonObj = new
   {
       data = "eneAZDnJP/5B6r/X6RyAlP3J",
   };
   request.Content = new StringContent(JsonConvert.SerializeObject(jsonObj), Encoding.UTF8, "application/json");
   
   var response = await client.SendAsync(request);
}
EN

回答 1

Stack Overflow用户

发布于 2022-06-12 20:51:47

如果您不确定序列化是否按预期工作,可以在LINQpad或dotnetfiddle.net中尝试。请参阅在控制台上返回JSON的我的例子。如果您不确定一段代码是否按预期工作,这些工具对于方法或代码片段的快速原型化是很好的。

您也可以签入Wireshark,但是如果您的连接没有加密(没有HTTPS),这可能会有点过分,并且工作得最好。

我个人倾向于以以下方式测试调用某些API的代码:

  • 使被调用的URL参数化(通过类构造函数)
  • 如果有任何可变数据,则应将该数据作为方法参数传递。
  • 对于您的测试,从您的测试夹具启动HTTP服务器(如果您不知道这意味着什么,请阅读使用xUnit或NUnit的测试)

  • 将本地IP传递给访问API的类。
  • 检查HTTP服务器是否接收到预期的数据

这类代码是否应该被测试(这种方式)可能是有争议的,但我发现这种方式是好的。我过去常常将HttpClient类抽象出去,但是IMHO不再推荐这样做了,因为如果类访问API (并且不做任何其他重要的事情),HTTP访问是应该测试的关键部分,而不是模拟的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72596938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文