c# - C# GetAsync await 返回状态码 204 而 PostMan 返回 200
问题描述
我使用 GetAsync 方法对 WebAPI 进行了 Get API 调用,该方法根据位置参数获取 JSON 中的一些值。我在循环中运行 WebAPI 调用,出于某种原因,对于某些 Location 参数,代码返回“无内容”状态代码 204。当我从 Postman 调用 webAPI 时,它成功返回数据。
这是我的代码:
private static async Task<string[]> GetLatLongValues(string locationDescription)
{
string[] latLng = new string[2];
string locationAPI = "https://zoek-search-api-live-us-2.azurewebsites.net/" ;
try
{
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri(locationAPI);
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Add("cache-control", "no-cache");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//HTTP GET
var responseTask = await client.GetAsync("Geocode/SearchLocation?location=" + Uri.EscapeDataString(locationDescription)); //.ConfigureAwait(continueOnCapturedContext: false);
responseTask.EnsureSuccessStatusCode();
if (responseTask.IsSuccessStatusCode)
{
var resString = await responseTask.Content.ReadAsStringAsync ();
//resString.Wait();
if (resString.Length !=0)
{
Newtonsoft.Json.Linq.JArray resArr = Newtonsoft.Json.Linq.JArray.Parse(resString);
latLng[0] = resArr[0]["latitude"].ToString();
latLng[1] = resArr[0]["longitude"].ToString();
validLatLong.Add(locationDescription, latLng);
}
else
{
latLng[0] = "0";
latLng[1] = "0";
InvalidLatLong.Add(locationDescription, latLng);
isLocValid = false;
}
}
}
return latLng;
}
catch(Exception ex)
{
latLng[0] = "0.0";
latLng[1] = "0.0";
return latLng;
}
}
解决方案
推荐阅读
- javascript - 无法将状态中的字符串数组映射到 React Native Picker 中的 Picker.item
- x86-64 - 给定一个运行 32 位代码的 64 位系统,所有 32 位应用程序不应该使用相同的 4GB 内存吗?
- matlab - 将 polyshape 转换为一组坐标数组
- powershell - Kafka Producer 窗口不允许我添加消息
- python - 将 Matplotlib 图输出为灰度数组
- sql - 如何从 SQL 查询中删除重复行
- c# - 使用 Jquery 设置复选框值的模型验证错误
- python - Is it possible to Azimuthal equidistant projection and create a buffer polygon in Ruby
- sql - MS Access Error 3265 'item not found in this collection' when opening form in add mode
- google-app-engine - 有没有办法为 app.yaml 中的所有静态文件设置默认的 http 标头而不重复?