【问题标题】:How to get message from server after upload the file in silverlight 3?在silverlight 3中上传文件后如何从服务器获取消息?
【发布时间】:2009-12-12 02:32:01
【问题描述】:

我按照示例成功上传文件到服务器:

http://www.c-sharpcorner.com/UploadFile/nipuntomar/FileUploadsilverlight03182009030537AM/FileUploadsilverlight.aspx

是否可以在 webclient OpenWriteCompleted 事件上从服务器获取字符串消息?

【问题讨论】:

    标签: silverlight silverlight-3.0


    【解决方案1】:

    不幸的是,这是 Silverlight WebClient 的众多奇异设计选择之一,您无法在执行 POST 后轻松访问响应。这真的很奇怪,因为大多数 POST 操作都有一个有用的响应体。

    但是,您可以做很多事情。你可以放弃WebClient,直接使用WebRequest/WebResponse。您可以继承 WebClient 并覆盖 GetWebResponse 以便拦截它。

    但是,如果您的字符串消息相当短,一个偷偷摸摸的选择是在响应中添加自定义 HTTP 标头。

    当输出流关闭时,执行 OpenWriteCompleted 的线程将阻塞,直到收到响应。此时,您可以访问 WebClient 对象上的 ResponseHeaders 集合以检索自定义标头的值。 (为什么当时没有提供响应流让我无法理解!)

    【讨论】:

    • 您能否详细介绍一下如何在 ashx 文件中添加“自定义 HTTP 标头”?谢谢~
    【解决方案2】:

    在您的 HttpHandler 上,您只需要

    context.Response.Write("You made it");
    

    要在 Silverlight 端阅读它,您可能需要处理 OpenReadCompleted 事件。

    【讨论】:

    • OpenReadCompleted 仅在使用 OpenReadAsync 时触发。
    猜你喜欢
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    相关资源
    最近更新 更多