2

WebRequest クラスを使用して、サイトにリクエストを送信しています。クエリ文字列にスラッシュ (/) が含まれているため、URL がクエリ文字列の一部として認識されないため、サイトによって URL が切り取られます。

クエリ文字列は次のとおりです:「私のパラメータ/スラッシュで区切られた」。

リクエスト:

var request = WebRequest.Create(
    "http://www.somesime.com/q-my+params+%2f+separated+by+slash"
);

私は何が欠けていますか?

編集:ここでのすべての回答が更新された後:

私はクエリ文字列について間違っていました。実際にはクエリ文字列ではありませんが、URL は ("?" なしで) 見えるはずです:

"http://www.somesime.com/q-my+params+%2f+separated+by+slash"

URL " http://www.somesime.com/q-my+params+%2f+separated+by+slash " は Server.UrlEncode メソッドの結果です。コード:

var url = "http://www.somesime.com/q-" + 
    Server.UrlEncode(@"my params / separated by slash");

編集 2: 結果の URL をブラウザーに配置すると、すべてが機能します。しかし、WebRequest クラスを介して実行すると、「/ で区切られたスラッシュ」部分なしで呼び出されたとおりの URL が返されます。

4

7 に答える 7

1

Apache の AllowEncodedSlashes オプションを確認する必要があります。

http://httpd.apache.org/docs/2.0/mod/core.html#allowencodedslashes

.htaccess または httpd_conf でこれを有効にできるはずです

于 2010-08-11T07:50:55.573 に答える
1

これが実際のコードである場合、?: がありません。

var request = WebRequest.Create("http://www.somesime.com/?q=my+params+%2f+separated+by+slash");
于 2009-08-06T13:13:41.673 に答える
1

「?」を入れ忘れました。キー名の前に、試してみてください:

var request = WebRequest.Create("http://www.somesime.com?q=my+params+%2f+separated+by+slash");
于 2009-08-06T13:14:25.447 に答える
0

URLのこの部分:

/q=my+params+%2f+separated+by+slash

実際にはURLの続きであり、Webサイトはおそらく何らかのURLルーティングを使用しています。クエリ文字列は「?」で示されます '&'で区切られます。

URLから「/」を削除する必要がある場合は、HttpUtility.UrlEncodeを使用することをお勧めしますが、URLに対してエンコードを行うと、ほぼ確実にWebRequestが失敗するため、これはメリットがありません。

于 2009-08-06T13:20:56.577 に答える
0

(はい、それはあなたが欠けているものです。:)

于 2009-08-06T13:21:16.000 に答える
0

URLエンコードしてください。(への参照が必要になりますSystem.Web)

string url = "http://www.somesime.com/?q=my+params+%2f+separated+by+slash");
var request = WebRequest.Create(HttpUtility.UrlEncode(url));
于 2009-08-06T13:14:04.637 に答える
0

このように使用します

$qrypic = 'INSERT INTO tbl_propics (userID,num,imagename,propic) VALUES ("$id","1","http://\graph.facebook.com/\$id/\picture?type=large" ,"1")';

于 2014-04-21T15:16:14.117 に答える