0
一个朋友告诉我这个示例代码,C#实现HTTP POST,做的winform应用程序计算出: http://www.terminally-incoherent.com/blog/2008/05/05/send-a-https-post-request-with-c/为什么我收到此错误:远程服务器返回错误:(417)预期失败
而在Metro应用中实现:
// this is what we are sending
string post_data = "[email protected]&pass=example123";
// this is where we will send it
string uri = "http://app.proceso.com.mx/win8/login";
// create a request
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
// turn our request string into a byte stream
byte[] postBytes = Encoding.UTF8.GetBytes(post_data);
// this is important - make sure you specify type this way
request.ContentType = "application/x-www-form-urlencoded";
Stream requestStream = await request.GetRequestStreamAsync();
// now send it
requestStream.Write(postBytes, 0, postBytes.Length);
// grab te response and print it out to the console along with the status code
WebResponse response = await request.GetResponseAsync();
//var a = new StreamReader(response.GetResponseStream()).ReadToEnd();
StreamReader requestReader = new StreamReader(response.GetResponseStream());
String webResponse = requestReader.ReadToEnd();
我意识到,HttpWebRequest的不含ProtocolVersion并抛出我这个错误在这行:
WebResponse response = await request.GetResponseAsync();
// ERROR: The remote server returned an error: (417) Expectation Failed.
我想最后一个属性是解决方案。我怎么解决这个问题? 在此先感谢
尝试在顶部放置以下代码:'ServicePointManager.Expect100Continue = false;'另外,为什么使用Async版本的方法,然后使用'await'进行阻塞,所有这些函数都有同步版本。 –