0

全て

perl を呼び出して perl からデータを受け取る Java サーブレット プログラムがあります。使った

String urlString = "http://[hostname]:[port]/cgi-bin/perl.pl?city="+city+"&chain="+chain;
URL url = new URL(urlString);
URLConnection urlConnection = url.openConnection();
urlConnection.setAllowUserInteraction(false);
InputStream urlStream = url.openStream();

perl をヒットするための URL として、および perl 側の場合は使用します

my $city = param("city");
my $chain = param("chain"); 
my $url_temp = "http://www.tripadvisor.com/Search?q=${chain}+${city}";

GET パラメータで都市の値を取得する

サーブレットも perl もスペースのない都市の名前でうまく機能しますが、「ロサンゼルス」と「ニューヨーク」については、それを機能させるための解決策が思いつきません。string.replace(' ','+') を試しましたが、何も返されません。%20 で置き換えると、プログラムがエラーになります

任意のアイデアをいただければ幸いです。

4

1 に答える 1

0

Konerak と Guillaume が言ったように、url エンコードを使用してください...

// first
try {
   city = URLEncoder.encode(city, "UTF-8");
   chain = URLEncoder.encode(chain, "UTF-8")
} catch (Exception e) {}

// now your code
String urlString = "http://[hostname]:[port]/cgi-bin/perl.pl?city="+city+"&chain="+chain;
URL url = new URL(urlString);
URLConnection urlConnection = url.openConnection();
urlConnection.setAllowUserInteraction(false);
InputStream urlStream = url.openStream();
于 2012-04-10T11:09:42.573 に答える