1

尝试使用cot.ag/o1LnfWHttpWebRequest 使用来自 .NET 的 URI,我得到 301 Moved 响应,响应标头 Location 的(不正确)值为:

http://www.joycemeyer.org/BroadcastHome.aspx?video=Living_Beyond_Your_Feelings_â_Pt_1&utm_source=Twitter&utm_campaign=EEL&utm_medium=post&utm_term=September29&utm_content=post

从提琴手,我得到(正确的)位置标头值:

http://www.joycemeyer.org/BroadcastHome.aspx?video=Living_Beyond_Your_Feelings_–_Pt_1&utm_source=Twitter&utm_campaign=EEL&utm_medium=post&utm_term=September29&utm_content=post

注意到 – 出现在 Fiddler URL 中的不同之处。在 Fiddler 的情况下,字节为 E2 80 93。在 .Net 的情况下,字节为 E2 3F 3F。这会导致错误的标头解释,随后无法遵循重定向。

我认为这是一个 .NET 框架错误,但我不知道 RFC 说它应该作为什么发送。我应该将此作为错误报告给 Microsoft,还是在错误的代码页中提供标头时出现 bit.ly 失败?

4

2 回答 2

7

RFC 2616指定标头应包含RFC 1630Location定义的 URI ,这要求 URI 是 7 位干净的 ASCII 并带有任何特殊字符的 URL 编码。

换句话说,服务器错误地传递了 URI,应该转义它。

于 2011-10-04T22:07:36.903 回答
1

我已经在 bit.ly 的支持论坛上报告了这个错误。他们应该使用 ASCII 字符集中的合法 RFC 1630 URI 进行响应(没有高位集的八位字节)。

于 2011-10-06T20:50:27.433 回答