使用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 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>();
}