CSharp - C# 控制台应用程序可以使用. NET 3.5中的类调用 Web API?

  显示原文与译文双语对照的内容

如何在下面使用. NET 3.5中的类编写控制台应用程序? 我应该查看哪些类? 控制台应用程序需要用. NET 3.5编译,并且不能使用HttpClient类。 它需要调用 Web API,并在下面正在执行一个XML字符串:


string xml ="<test>blah</test>";
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://CONTOSO/");
HttpContent xmlContent = new StringContent(xml);

HttpResponseMessage response = client.PostAsync("API/Import/", xmlContent).Result;
if (response.IsSuccessStatusCode)
{
 Console.WriteLine(String.Format("Success."));
}
else
{
 Console.WriteLine("{0: } {1}", (int)response.StatusCode, response.ReasonPhrase);
}

我尝试了下面的代码,但我得到了错误: "错误:( 500 ) 内部服务器错误。"


string baseAddress ="http://CONTOSO/";
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(baseAddress +"API/Import");
req.Method ="POST";
req.ContentType ="text/xml";
Stream reqStream = req.GetRequestStream();
string fileContents = xml;
byte[] fileToSend = Encoding.UTF8.GetBytes(fileContents);
reqStream.Write(fileToSend, 0, fileToSend.Length);
reqStream.Close();
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();//<=="ERROR: (500) Internal Server Error."
Console.WriteLine("HTTP/{0} {1} {2}", resp.ProtocolVersion, (int)resp.StatusCode, resp.StatusDescription);

时间: 作者:

RestSharp支持. NET 3.5,

https://github.com/restsharp/RestSharp

因此,你可以使用这个开源的HTTP客户端库来使用 Web API 。

作者:
...