首页 > 解决方案 > 如何使用 json 正文发送 GET 请求?

问题描述

有什么办法可以使用 c# 发送带有 JSON 正文的 GET 请求吗?我正在调用 API 以使用 GET 请求检索项目列表,但我必须以 JSON 格式传递 customer_id。我能够在 Postman 和 Python 中成功地做到这一点。但是,我正在使用的旧版应用程序是作为 c# .NET winform 构建的。我可以使用 HttpClient 进行其他调用,但经过一些研究,我发现这个类不允许使用主体的 GET 请求,除非使用 CORE。还有其他选择吗?

标签: c#apigetrequesthttpclient

解决方案


根据Ian Kemp对这个问题的回答,这可以使用System.Net.Http.WinHttpHandler库在 .NET Framework 项目中完成。(我只是在这里添加答案的相关部分,但我建议去查看他的完整答案

首先,从 Nuget 安装System.Net.Http.WinHttpHandler库,然后将其用作您的 http 客户端处理程序,如下所述:

var handler = new WinHttpHandler();
var client = new HttpClient(handler);
var request = new HttpRequestMessage
{
    Method = HttpMethod.Get,
    RequestUri = new Uri("some url"),
    Content = new StringContent("some json", Encoding.UTF8, ContentType.Json),
};

var response = await client.SendAsync(request).ConfigureAwait(false);
//Handle the response as you see fit

推荐阅读