2014-01-15 45 views
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); 
+0

您可以使用WebClient。 –

+0

你不想要這行reqStream.Close(); –

回答

相關問題