在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

回到顶部