使用HttpClient将curl转换为c#代码

本文关键字:代码 转换 curl HttpClient 使用 | 更新日期: 2023-09-27 18:10:19

我想发送curl请求,我得到从JS代码下面与HttpClient。

curl -v -X GET "hxxps://airport.api.aero/airport?user_key=[token]"

所以我写了c#代码

string response = await client.GetStringAsync(new Uri("hxxps://airport.api.aero/airport?user_key=[token]"));

,我尝试用下面的代码反序列化响应。

// deserialize the JSON object response, the information will become an AirportObject.RootObject instance
rootObject = JsonConvert.DeserializeObject<AirportObject.RootObject>(response);

rootObject是一个c#类对象的实例,从链接接收的信息是JSON格式的。因此,它需要从JSON转换为c#类的实例。

另外,当我试图直接访问链接时,它给出了用callback()函数封装的JSON数据。

我写对了吗?当我运行它时,它什么也没做。

谢谢。

(固定)所以我的问题只是没有指定标题类型。下面是修复程序的代码:

//set request headers to accept JSON data
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

使用HttpClient将curl转换为c#代码

您需要这样获得响应来反序列化它:

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost/api/v1/");
HttpResponseMessage response = await client.GetAsync("some");
if(response.IsSuccessfulStatusCode)
{
     // The entity is within the response's content
     RootObject root = await response.Content.ReadAsAsync<RootObject>();
}