我有这个CURL命令,我想转换为C#:
curl -H "Api-Key: abc123" -H "Accept: application/vnd.com.some+json; version=9" https://api.someapi.io/somemethod?someParam=someparam
我在标题中设置version = 9时遇到问题。我提出这样的要求:
var request = new HttpRequestMessage()
{
RequestUri = new Uri(requestURL),
Method = HttpMethod.Get
};
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/vnd.com.some+json"));
request.Headers.Add("Api-Key", apiKey);
request.Headers.Add("version", "9");
var httpHandler = new HttpClientHandler();
var httpClient = new HttpClient(httpHandler);
var response = await httpClient.SendAsync(request);
var json = await response.Content.ReadAsStringAsync();
当我通过curl调用此请求时,它可以工作,并识别标头中定义的版本值。
从此c#代码调用API方法也有效,但API无法识别标头中定义的版本值(版本定义API版本)。请注意,我的其他标头值(apikey,mediatype)由API正确处理。
我的代码中有什么错过?
非常感谢!
答案 0 :(得分:0)
所以,最后我找到了解决方案:
request.Headers.Add("Accept", "application/vnd.com.some+json;version=9");
request.Headers.Add("Api-Key", apiKey);
感谢大家的帮助!