Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用HttpClient将curl调用转换为C#_C#_.net_C# 4.0_Sms_Clickatell - Fatal编程技术网

如何使用HttpClient将curl调用转换为C#

如何使用HttpClient将curl调用转换为C#,c#,.net,c#-4.0,sms,clickatell,C#,.net,C# 4.0,Sms,Clickatell,如何使用HttpClient将curl转换为在C中使用 下面是我需要使用的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":

如何使用
HttpClient
将curl转换为在C中使用

下面是我需要使用的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;
}
使用(var httpClient=new httpClient())
{
httpClient.DefaultRequestHeaders.Authorization=newauthenticationheadervalue(“Bearer”,“abcdefghij0123456789”);
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
httpClient.DefaultRequestHeaders.Add(“X版本”、“1”);
StringContent-StringContent=newstringcontent(“{\“text\”:\“testmessage\”,\“to\”:[\“27936909\”]);
stringContent.Headers.ContentType=新的MediaTypeHeaderValue(“应用程序/json”);
HttpResponseMessage HttpResponseMessage=等待httpClient.PostAsync(“https://api.clickatell.com/rest/message",内容),;
if(httpResponseMessage.IsSuccessStatusCode)
{
}
其他的
{
string failureMsg=“HTTP状态:”+httpResponseMessage.StatusCode.ToString()+”-原因:“+httpResponseMessage.ReasonPhrase;
}
//字符串sjson=wait-httpResponseMessage.Content.ReadAsAsync();
//返回sjson;
}

一切看起来都是正确的,但当我运行它时,我总是收到一个错误的请求。我不知道怎么解决这个问题?不确定我是否错过了curl调用中的某些内容?

当有人试图调试网络问题时,我将回复与我通常回复的相同的内容。安装wireshark,使用您想要模拟的流量创建一个会话,然后使用您自己的代码创建另一个会话。这将使您能够准确地看到发生了什么,以及哪些标头传输不正确。

到底是什么问题?你试过什么?怎么会失败?可能是我更新的帖子的副本。我所拥有的我不知道它是否正确。@KonradKokosa我的问题不是重复的!你看过我的问题了吗?我想知道如何使用“HttpClient”转换curl调用。在你的建议中,没有关于curl调用的内容。你的curl调用只是HTTP POST调用,所以我看不出有什么区别-它只是关于使用
HttpClient
。你有没有关于你提到的方法的教程?谢谢