4

我正在使用 HSS Interlink 在我的应用程序中上传下载文件。我面临的问题是我的下载处理程序正在返回 HTTPStatusCodes,如 500,404 等,但问题是当我摆弄请求时,它正确显示了我真正想要返回的 500 状态代码,但在 Silverlight 客户端中,当我检查 HttpWebResponse.Status在例外我得到 404 .. 我在 msdn 上进一步调查了这个并发现了一个非常奇怪的评论:

为 HTTP 和 HTTPS 方案返回的唯一状态代码值是 OK 和 NotFound。

http://msdn.microsoft.com/en-us/library/system.net.httpstatuscode%28v=vs.95%29.aspx

有没有人可以对此有所了解?这是否意味着 silverlight webClient 只能有 OK 和 NotFound 状态作为响应?

4

1 回答 1

4

找到了答案.. silverlight 需要注册 url 方案才能处理传入的 httpstatus 代码。

bool httpResult = WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
bool httpsResult = WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);

我确信这不是 RegisterPrefix 的唯一用途。我希望其他人帮助我了解它的潜在用途是什么..

编辑:

silverlight 提供在两种模式下与 http 堆栈一起工作。一种是默认使用的 browserStack。所有 cookie 和 auth 标头都由浏览器处理,但它不会发送任何状态代码返回给 silverlight 客户端。

另一方面,ClientHttp 堆栈为您提供了获取状态代码和其他异常详细信息,但它要求您自己管理所有内容,包括 cookie、标头等。

问候。

于 2012-06-13T08:00:58.480 回答