我正在使用 Apache HttpClient 4.x 发送一个 http get/head 请求。我正在发送一个带有“ http://example.com/getAccessToken ”之类的 url 的请求。我希望响应是一个重定向 url,在返回的 url 中带有参数,如“ http://redirecturl.com/?code=accessTokenStuff ”。我希望能够解析响应重定向 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,它有一个名为“code”的参数。然后我想得到那个参数的值。
编辑:
我也试过这个,但它返回相同的原始 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);
返回空