.NET Compact Framework中带有POST参数的异步WebRequest

我正在尝试在.NET Compact Framework上执行异步HTTP(S)POST,但我似乎无法使其正常工作。

这就是我正在做的事情:

private void sendRequest(string url, string method, string postdata) { WebRequest rqst = HttpWebRequest.Create(url); CredentialCache creds = new CredentialCache(); creds.Add(new Uri(url), "Basic", new NetworkCredential(this.Uname, this.Pwd)); rqst.Credentials = creds; rqst.Method = method; if (!String.IsNullOrEmpty(postdata)) { rqst.ContentType = "application/xml"; byte[] byteData = UTF8Encoding.UTF8.GetBytes(postdata); rqst.ContentLength = byteData.Length; using (Stream postStream = rqst.GetRequestStream()) { postStream.Write(byteData, 0, byteData.Length); postStream.Close(); } } ((HttpWebRequest)rqst).KeepAlive = false; rqst.BeginGetResponse(DataLoadedCB, rqst); } private void DataLoadedCB(IAsyncResult result) { WebRequest rqst = ((WebRequest)(((BCRqst)result.AsyncState).rqst)); WebResponse rsps = rqst.EndGetResponse(result); /* ETC...*/ } 

…但由于某种原因,我在DataLoadedCB的第二行得到一个WebException:

“此请求需要缓冲数据以进行身份​​validation或重定向才能成功。”

当我做一个简单的HTTP GET时,完全相同的代码完美地工作,但是当我抛出一些POST参数时,一切都失败了。

有任何想法吗?

我很开心! 我找到了问题的答案!!!

这条小线做了诀窍:

 ((HttpWebRequest)rqst).AllowWriteStreamBuffering = true;