StringBuilderで文字列を作成しています
StringBuilder builder = new StringBuilder();
builder.append("my parameters");
builder.append("other parameters");
次に、URLを作成します
Url url = new Url(builder.toString());
そして、私は接続を試みます
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
しかし、URLは私が得る結果から正しくないようです。一部のパラメーターがfalseで渡されているようです。だからこそ、問題はStringBuilderの一部にあると思います。
問題は、渡そうとする二重パラメーターにあります。
double longitude = 23.433114;
String lng = String.ValueOf(longitude);
そして、私はそれをURLに入れました。しかし、文字列として指定した場合、結果は正しいです。
String lng = "23.433114"
UrlEncodingは必要ですか?以下に提案されていることを試してみます。
ApacheのURIBuilder
を試してください:[ Documentation ]
import org.Apache.http.client.utils.URIBuilder;
// ...
URIBuilder b = new URIBuilder("http://example.com");
b.addParameter("t", "search");
b.addParameter("q", "apples");
Url url = b.build().toUrl();
Maven依存関係:
<dependency>
<groupId>org.Apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency>
URLを作成してGETリクエストで使用するため、このプロセスに役立つライブラリを使用することをお勧めします。 HttpComponents または nirest のような別のライブラリを使用できます。これは、すべての作業を容易にするHttpComponentsの上に構築されます。
Unirestを使用した例を次に示します。
HttpResponse<String> stringResponse = Unirest.get("https://www.youtube.com/results")
.field("search_query", "eñe")
.asString();
System.out.println(stringResponse.getBody());
これは、"eñe"
を使用したyoutubeでの検索のすべての結果に対応するHTML応答を取得します。 ñ
文字がエンコードされます。
免責事項:私は、いかなる意味でもユニレストに執着していません。私はこのプロジェクトの開発者でもスポンサーでもありません。私はこのフレームワークの唯一の幸せなユーザーです。