10

エンコードされた URL をデコードする HttpWebRequest に問題があります。

var requestUrl = "https://www.google.com/webmasters/tools/feeds/http%3A%2F%2Fwww%2example%2Ecom%2F/crawlissues/";   
var request = (HttpWebRequest)WebRequest.Create(requestUrl);

終了リクエスト URL を見ると、次のようになります。

https://www.google.com/webmasters/tools/feeds/http://www.example.com//crawlissues/

もちろん、これは 400 Bad リクエストを返します。HttpWebRequest ではなく URI クラスに関係があると思います。これが起こらないようにするにはどうすればよいですか?

4

5 に答える 5

5

これは、Uri クラスの厄介な「セキュリティ機能」です。4.0 以降を使用している場合は、構成ファイルでオフにすることができます。それ以外の場合は、リフレクションに頼る必要があります。

于 2012-10-23T17:54:54.900 に答える
1

その URL をリクエストすることはできないと思います。

%2Fクエリ パラメータではデコードされません。したがって、エンコードされたデータがクエリ パラメータにある場合は機能します。

requestUrl = "https://google.com/tools?feeds=http%3A%2F%2Fwww%2example%2Ecom%2F/crawlissues/";   
var request = (HttpWebRequest)WebRequest.Create(requestUrl);
于 2012-10-15T03:54:46.890 に答える
0

確かではありませんが、HttpServerUtility.UrlEncodeメソッドが役立つ可能性があります。

更新。または、WebClient クラスを使用することもできます。

于 2010-02-18T09:58:41.017 に答える
0

Request メソッドを POST から GET に変更してみてください

于 2010-11-30T07:09:55.277 に答える