无法从使用 C# 的 API 获得 json 响应
Posted
技术标签:
【中文标题】无法从使用 C# 的 API 获得 json 响应【英文标题】:Can't get a json response from an API with C# 【发布时间】:2015-12-16 19:52:34 【问题描述】:我只是在学习如何使用 API。我已经能够请求并获得一个安全令牌,并且我能够通过 API 进行身份验证,以便 GET 请求返回我想要的信息。我使用下面显示的代码来发出我的 GET 请求。
client.BaseAddress = new Uri("https://api.example.com");
client.DefaultRequestHeaders.Accept.Clear();
//client.DefaultRequestHeaders.Accept.Add(new
MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("Authorization" ,"Bearer "+ accessToken);
client.DefaultRequestHeaders.Add("Cache-Control", "no-cache");
HttpResponseMessage response =client.GetAsync"/api/v1/agencies/agencyId/users?email=Test.Test@Test.net").Result;
if (response.IsSuccessStatusCode)
string json = "Need help here";
我通过了 API 的身份验证,但不知道如何获取 json 数据。我发现了几个使用带有本地 API 的命令提示符应用程序的示例;它们似乎都使用带有等待的异步,但它们似乎不适用于 ASP.Net Web 应用程序。
谁能帮助我或展示一个使用网络表单的示例?
【问题讨论】:
HttpClient 有一个GetStringAsync 方法。获取 JSON 字符串的示例显示为in this question。 如果您一开始不知道如何从 HttpClient 获取 JSON 字符串,@B.ClayShannon Json.NET 不会帮助您。 也许我们需要佩里·梅森来解决这个问题……哦,等等,你已经在这里了!如果 Dixon 出现,我们可以在那里划清界限。 检查这个:restsharp.org What does HttpResponseMessage return as Json的可能重复 【参考方案1】:你可以这样得到json:
if (response.IsSuccessStatusCode)
string json = response.Content.ReadAsStringAsync().Result;
对于异步功能,您可以使用它:
if (response.IsSuccessStatusCode)
string json = await response.Content.ReadAsStringAsync();
【讨论】:
谢谢托马斯,您的回答正是我所需要的。我将进入此旅程的下一步,即获取该 json 数据并将其放入数据库。以上是关于无法从使用 C# 的 API 获得 json 响应的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# Asp.Net 中从相当复杂的 Json 响应中创建 Dto
localhost上的测试Laravel API无法获得响应