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

Fiddlerから、(正しい)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

Fiddler URLで–が発生する場所の違いに注意してください。Fiddlerの場合、バイトはE2 80 93です。.Netの場合、バイトはE23F3Fです。これにより、ヘッダーの解釈が不正確になり、その後、リダイレクトに従わなくなります。

これは.NETFrameworkのバグだと思いますが、RFCが何として送信すべきかはわかりません。これをバグとしてMicrosoftに報告する必要がありますか、それとも間違ったコードページでヘッダーを提供する際のbit.lyによる失敗ですか?

4

2 に答える 2

7

RFC 2616は、 RFC 1630Locationで定義されているURIをヘッダーに含める必要があることを指定しています。これには、URLがエンコードされた特殊文字を含む7ビットのクリーンなASCIIである必要があります。

つまり、サーバーはURIを誤って配信しているため、URIをエスケープする必要があります。

于 2011-10-04T22:07:36.903 に答える
1

これはbit.lyのサポートフォーラムでバグを報告しました。それらは、ASCII文字セットの有効なRFC 1630 URIで応答する必要があります(高ビットセットのオクテットはありません)。

于 2011-10-06T20:50:27.433 に答える