1

この他の SO の質問に従ってURL のパラメーターを設定しましたが、エラーが発生していました。

setQueryString(String)型のメソッドHttpMethodBaseは引数に適用できません(NameValuePair[])

タイプをインスタンス化できませんNameValuePair

私は実際の問題を理解することができません。誰かがこれについて私を助けることができますか?

上記の質問から使用したコード

GetMethod method = new GetMethod("example.com/page";); 
method.setQueryString(new NameValuePair[] { 
    new NameValuePair("key", "value") 
}); 
4

3 に答える 3

13

HttpClient 4.x では、もうありませGetMethodん。代わりに がありHttpGetます。チュートリアルからの例の引用:

URL のクエリ パラメータ:

HttpGet httpget = new HttpGet(
 "http://www.google.com/search?hl=en&q=httpclient&btnG=Google+Search&aq=f&oq=");

プログラムによるクエリ文字列の作成:

URIBuilder builder = new URIBuilder();
builder.setScheme("http").setHost("www.google.com").setPath("/search")
    .setParameter("q", "httpclient")
    .setParameter("btnG", "Google Search")
    .setParameter("aq", "f")
    .setParameter("oq", "");
URI uri = builder.build();
HttpGet httpget = new HttpGet(uri);
System.out.println(httpget.getURI());
于 2013-04-26T07:52:41.390 に答える
1

インターフェイスを直接インスタンス化することはできません。そのようなインターフェイスを実装するクラスをインスタンス化する必要があります。

これを試して:

NameValuePair[] params = new BasicNameValuePair[] {
        new BasicNameValuePair("param1", param1),
        new BasicNameValuePair("param2", param2),
};
于 2014-07-09T22:50:03.623 に答える
0

URL 内でクエリ パラメータを渡すことができます。

String uri = "example.com/page?key=value";
HttpClient httpClient = new DefaultHttpClient();
HttpGet method = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(method);
BufferedReader br = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
String content="", line;
while ((line = br.readLine()) != null) {
     content = content + line;
}
System.out.print(content);
于 2013-04-26T07:49:04.853 に答える