2016-05-18 9 views
2

Googleのapiを使用して近くのレストランを取得するアンドロイドアプリを構築していますが、複数のキーワードを使用しているときにURLの書式設定に少し問題がある ブラウザでURLをテストするとそれはうまく動作しますが、問題は、括弧付きの部分がURLから除外されるアンドロイドスタジオ内のURLを取得するときです。したがって、必要なのは、アンドロイドのURLの中に角かっこを入れる方法です。AndroidのURL内に角括弧を含めるには

これはURLのメインコードのフォーマットです:

String keywordText; 
String keyword="(Pizza)and(sushi)"; 
String BASE_URL="https://maps.googleapis.com/maps/api/place/nearbysearch/json?"; 
String API_KEY= "AIzaSyBg-iwzAjavEUVV9hOQUr0JljZHL7XFRkQ"; 
String ApiKey; 
String locationText; 




public void onLocationComplete(Location location) { 
     Log.e("onLocationComlete", keyword); 

     keywordText = "&keyword=" + keyword; 
     ApiKey = "&key=" + API_KEY; 
     radiusText = "&radius=" + radius; 
     locationText = "&location=" + location.getLatitude() + "," + location.getLongitude(); 
     url = BASE_URL + locationText + radiusText + keywordText + ApiKey; 

     loc = location; 
     new FetchFromServerTask(Restaurants.this, 0).execute(url); 


    } 

URLは、私はフォーマット後に取得する必要があります。 https://maps.googleapis.com/maps/api/place/nearbysearch/json?&location=33.2711492,35.2125282&radius=10000&keyword=(pizza)and(sushi)&key=AIzaSyBg-iwzAjavEUVV9hOQUr0JljZHL7XFRkQ

ではなく、私はコンソールからこの作業ではないURLを取得:image

には、URLの中にかっこを入れる方法や、複数のキーワードを使って場所を検索する方法がありますか?

+0

[のURLEncoder](https://docs.oracle.com/javase/7/docs/api/を見てくださいjava/net/URLEncoder.html)のクラスです。 –

+0

手段を送信できない場合は、getメソッドではなくpostメソッドを使用して位置データを送信します。 –

+0

あなたは[URIビルダー](http://stackoverflow.com/questions/19167954/use-uri-builder-in-android-or-create-url-with-variables)を使ってみるとよいでしょう –

答えて

0

URLの「信頼できる」部分と「信頼できない」部分があります。検索キーワードなどの信頼できない部分は、ユーザーとのやりとりによって生成され、データとして解釈されるようにエンコードする必要があります。あなたがエンコードするよりも多くをエンコードしているようです。このquestionの解決策の開始を受け入れる答えを見てください。

0

使用エンコーダ例:

import java.io.UnsupportedEncodingException; 
import java.net.URLEncoder; 

...

String encodedKeyword = null; 
try { 
      encodedKeyword = URLEncoder.encode(keyword, "UTF-8"); 
    } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
    } 
keywordText = "&keyword=" + encodedkeyword; 
+0

私はこのURLを取得するhttps://maps.googleapis.com/maps/api/place/nearbysearch/json?&location=33.2710757,35.2125823&radius=10000&keyword=%28pizza%29and%28sushi%29&key=AIzaSyBg-iwzAjavEUVV9hOQUr0JljZHL7XFRkQ –

+0

私は思うあなたのパラメタは間違っています –