public async static Task<WebResponse> GetResponseAsync(this HttpWebRequest request, Dictionary<string, object> post)
{
var tcs = new TaskCompletionSource<WebResponse>();
try
{
request.BeginGetRequestStream((arReq) =>
{
var stream = request.EndGetRequestStream(arReq);//throw NotSupportedException
writeMultipartObject(stream, post);
stream.Close();
request.BeginGetResponse((ar) =>
{
var response = request.EndGetResponse(ar);
tcs.SetResult(response);
}, null);
}, null);
}
catch (Exception we)
{
tcs.SetException(we);
}
return await tcs.Task;
}当我发帖时,没有works..=.= var stream =request.EndGetRequestStream(ArReq);//抛出NotSupportedException告诉我为什么?ToT.............
System.NotSupportedException -> System.NotSupportedException:不支持指定的方法。( System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) ( System.Net.Browser.ClientHttpWebRequest.<>c_DisplayClasse.b_d(Object sendState) )( System.Net.Browser.AsyncHelper.<>c_DisplayClass1.b_0(Object sendState)
发布于 2014-04-25 21:27:23
我也经历过类似的行为(仅在Windows上),并且通过显式地处理您要写的流来工作。所以试着添加
stream.Flush(); 和stream.Dispose();
在你的
stream.Close();语句,看看这是否有帮助。
显然,.Net中的网络堆栈的行为取决于您的代码运行的平台,因为每个平台的.Net框架都是“重新开发”的。
我希望这能帮到你。
干杯,克里斯托。
https://stackoverflow.com/questions/22852584
复制相似问题