您如何使用 将 curl 转换为在 C# 中使用HttpClient
?
这是我需要使用的 curl 调用:
Request:
curl -i \
-X POST \
-H "X-Version: 1" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Your Authorization Token" \
-H "Accept: application/json" \
-d '{"text":"Test Message","to":["Recipients Mobile Number"]}' \
-s \
https://api.clickatell.com/rest/message
我有 HttpClient 的基本知识,但我对 curl 调用一无所知,所以这就是我可以从谷歌搜索得出的结论。下面是我的代码,不知道是否正确?
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "abcdefghij0123456789");
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
httpClient.DefaultRequestHeaders.Add("X-Version", "1");
StringContent stringContent = new StringContent("{\"text\":\"Test Message\",\"to\":[\"27936906909\"]}");
stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage httpResponseMessage = await httpClient.PostAsync("https://api.clickatell.com/rest/message", stringContent);
if (httpResponseMessage.IsSuccessStatusCode)
{
}
else
{
string failureMsg = "HTTP Status: " + httpResponseMessage.StatusCode.ToString() + " - Reason: " + httpResponseMessage.ReasonPhrase;
}
//string sjson = await httpResponseMessage.Content.ReadAsAsync<string>();
//return sjson;
}
一切看起来都是正确的,但是当我运行它时,我不断收到一个错误的请求。我不确定如何解决这个问题?不确定我是否错过了 curl 通话中的某些内容?