1

我正在从 HttpClient 3.0 迁移到 Httpclient 4.1 如何从 URL 中获取查询字符串。

client = new DefaultHttpClient();

client.getHostConfiguration().setHost( pro.getProperty( "host" ),
                Integer.parseInt( pro.getProperty( "port" ).trim() ),
                    pro.getProperty( "protocol" ) );
//client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);

client.getCredentialsProvider().setCredentials(
        new AuthScope( pro.getProperty( "host" ),
            Integer.parseInt( pro.getProperty( "port" ).trim() ),
                pro.getProperty( "protocol" ) ),
        new UsernamePasswordCredentials( user, userpassword ) );

client.getParams().setBooleanParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true );
authget = new HttpGet( pro.getProperty( "getparam" ) );
HttpResponse response = client.execute( authget );
HttpEntity entity = response.getEntity();

我应该在此处插入什么以使查询字符串与“&”匹配。

StringTokenizer qryStrToken = new StringTokenizer(***Insert code for getting query string***,"&");

while (qryStrToken.hasMoreTokens()){
    String temp = qryStrToken.nextToken();
    if(temp.startsWith("SMAGENTNAME")){
        smAgentName = temp.substring(temp.indexOf("=")+1);
    }
}
4

2 回答 2

0

使用 HttpGet 的 getUri 方法。

String uri = authGet.getURI();
于 2011-03-10T13:14:19.527 回答
0

URI 有您的查询字符串,您可以通过以下方式获取:

URLEncodedUtils.parse(new URI(request.getRequestLine().getUri()),HTTP.UTF_8);

于 2011-07-22T07:51:58.413 回答