1
如何使用.NET 3.5的類重新編寫下面的控制檯應用程序?我應該研究哪些課程? 控制檯應用程序需要使用.net 3.5進行編譯,並且不能使用HttpClient類。 而且它需要調用一個WEB API,並通過一個XML字符串爲我做如下:C#控制檯應用程序可以使用.NET 3.5中的類來調用WEB API嗎?
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);
}
我嘗試下面的代碼,但我得到的錯誤:「ERROR:(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);
您可以使用WebClient。 –
你不想要這行reqStream.Close(); –