【发布时间】:2009-12-12 02:32:01
【问题描述】:
我按照示例成功上传文件到服务器:
是否可以在 webclient OpenWriteCompleted 事件上从服务器获取字符串消息?
【问题讨论】:
标签: silverlight silverlight-3.0
我按照示例成功上传文件到服务器:
是否可以在 webclient OpenWriteCompleted 事件上从服务器获取字符串消息?
【问题讨论】:
标签: silverlight silverlight-3.0
不幸的是,这是 Silverlight WebClient 的众多奇异设计选择之一,您无法在执行 POST 后轻松访问响应。这真的很奇怪,因为大多数 POST 操作都有一个有用的响应体。
但是,您可以做很多事情。你可以放弃WebClient,直接使用WebRequest/WebResponse。您可以继承 WebClient 并覆盖 GetWebResponse 以便拦截它。
但是,如果您的字符串消息相当短,一个偷偷摸摸的选择是在响应中添加自定义 HTTP 标头。
当输出流关闭时,执行 OpenWriteCompleted 的线程将阻塞,直到收到响应。此时,您可以访问 WebClient 对象上的 ResponseHeaders 集合以检索自定义标头的值。 (为什么当时没有提供响应流让我无法理解!)
【讨论】:
在您的 HttpHandler 上,您只需要
context.Response.Write("You made it");
要在 Silverlight 端阅读它,您可能需要处理 OpenReadCompleted 事件。
【讨论】: