Apache HttpClient 4.x を使用して http get/head リクエストを送信しています。「 http://example.com/getAccessToken 」のような URL でリクエストを送信しています。応答は、返された URL に「 http://redirecturl.com/?code=accessTokenStuff 」のようなパラメーターを含むリダイレクト URL であると期待しています。応答リダイレクト URL パラメーターを解析できるようにしたい、つまり「accessTokenStuff」を取得したい。どうやってやるの?
HttpClient client = new DefaultHttpClient();
HttpHead request = new HttpHead(authUrl);
HttpResponse response = client.execute(request);
System.out.println(response.getStatusLine().getStatusCode());//returns 200
request.releaseConnection();
一言で言えば、私が欲しいのは、元のURLを実行してから、「コード」と呼ばれるパラメーターを持つ別のURLである結果を取得することです。次に、そのパラメーターの値を取得したいと思います。
編集:
私もこれを試しましたが、同じ元のURLを返します
DefaultHttpClient client = new DefaultHttpClient();
HttpParams params = client.getParams();
HttpClientParams.setRedirecting(params, false);
HttpGet request = new HttpGet(authUrl);
HttpResponse response = client.execute(request);
String location = response.getLastHeader("Location").getValue();//returns same original url
System.out.println(location);
request.releaseConnection();
HttpClientParams.setRedirecting(params, true);
リターンヌルの設定