首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NotSupportedException on EndGetRequestStream

NotSupportedException on EndGetRequestStream
EN

Stack Overflow用户
提问于 2014-04-04 02:46:56
回答 1查看 885关注 0票数 0
代码语言:javascript
复制
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)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-25 21:27:23

我也经历过类似的行为(仅在Windows上),并且通过显式地处理您要写的流来工作。所以试着添加

代码语言:javascript
复制
stream.Flush(); 

和stream.Dispose();

在你的

代码语言:javascript
复制
stream.Close();

语句,看看这是否有帮助。

显然,.Net中的网络堆栈的行为取决于您的代码运行的平台,因为每个平台的.Net框架都是“重新开发”的。

我希望这能帮到你。

干杯,克里斯托。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22852584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档