ホームページ > バックエンド開発 > C++ > URL エンコードされたスラッシュを含む GET リクエストを正しく送信するにはどうすればよいですか?

URL エンコードされたスラッシュを含む GET リクエストを正しく送信するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-31 09:38:10
オリジナル
951 人が閲覧しました

How to Correctly Send GET Requests with URL-Encoded Slashes?

URL エンコードされたスラッシュを含む GET リクエストの送信

URL エンコードされたスラッシュ (例: 、http://example.com//)、Web クライアントが無効な URL に変換するという問題が発生する可能性があります。 (例: http://example.com//)。

この問題を解決するには、次のコードでパスとクエリを強制的に正規として扱うことで回避策を提供します。

Uri uri = new Uri("http://example.com/%2F");
ForceCanonicalPathAndQuery(uri);
using (WebClient webClient = new WebClient())
{
  webClient.DownloadData(uri);
}

void ForceCanonicalPathAndQuery(Uri uri){
  string paq = uri.PathAndQuery; // need to access PathAndQuery
  FieldInfo flagsFieldInfo = typeof(Uri).GetField("m_Flags", BindingFlags.Instance | BindingFlags.NonPublic);
  ulong flags = (ulong) flagsFieldInfo.GetValue(uri);
  flags &= ~((ulong) 0x30); // Flags.PathNotCanonical|Flags.QueryNotCanonical
  flagsFieldInfo.SetValue(uri, flags);
}
ログイン後にコピー

このスクリプトは、Uri オブジェクトの内部フラグを操作することで機能し、パスとクエリが正規のものとして扱われるようにし、実行中にそれ以上の変換を必要としません。リクエスト。

以上がURL エンコードされたスラッシュを含む GET リクエストを正しく送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート