在C#中进行cURL调用
我想curl
在我的C#控制台应用程序中进行以下调用:
curl -d "text=This is a block of text" \ http://api.repustate.com/v2/demokey/score.json
我尝试做类似此处发布的问题,但是我无法正确填写属性。
我还尝试将其转换为常规HTTP请求:
http://api.repustate.com/v2/demokey/score.json?text="This%20is%20a%20block%20of%20text"
我可以将cURL调用转换为HTTP请求吗?如果是这样,怎么办?如果没有,如何从我的C#控制台应用程序正确进行上述cURL调用?
回答:
好吧,您不会直接调用cURL,而是使用以下选项之一:
HttpWebRequest
/HttpWebResponse
WebClient
HttpClient
(可从.NET 4.5开始)
我强烈建议使用HttpClient
该类,因为从可用性的角度出发,该类的设计要比前两者更好。
对于您的情况,您可以这样做:
using System.Net.Http;var client = new HttpClient();
// Create the HttpContent for the form to be posted.
var requestContent = new FormUrlEncodedContent(new [] {
new KeyValuePair<string, string>("text", "This is a block of text"),
});
// Get the response.
HttpResponseMessage response = await client.PostAsync(
"http://api.repustate.com/v2/demokey/score.json",
requestContent);
// Get the response content.
HttpContent responseContent = response.Content;
// Get the stream of the content.
using (var reader = new StreamReader(await responseContent.ReadAsStreamAsync()))
{
// Write the output.
Console.WriteLine(await reader.ReadToEndAsync());
}
还应注意,HttpClient
与前面提到的选项相比,该类对处理不同的响应类型有更好的支持,并且对异步操作(以及取消了它们)有更好的支持。
以上是 在C#中进行cURL调用 的全部内容, 来源链接: utcz.com/qa/435568.html