0

api.stackexchange で Apache Api (httpcomponents) を使用して Java で http 要求を実行しようとしています。しかし、このリクエストは HTML ではなくテキストを返します。

これが私のコードです:

public class HttpRequestBrute {

    public static void main(String[] args) throws Exception {

        URIBuilder builder = new URIBuilder();
        builder.setScheme("http").setHost("api.stackexchange.com").setPath("/2.0/search")
            .setParameter("site", "stackoverflow")
            .setParameter("intitle" ,"workaround")
            .setParameter("tagged","javascript");
        URI uri = builder.build();

         HttpClient httpclient = new DefaultHttpClient();
         try {
             HttpGet httpget1 = new HttpGet(uri);

             System.out.println("executing request " + httpget1.getURI());
             // Create a response handler
             ResponseHandler<String> responseHandler = new BasicResponseHandler();
             String responseBody = httpclient.execute(httpget1, responseHandler);
             System.out.println("----------------------------------------");
             System.out.println(responseBody);
             System.out.println("----------------------------------------");

         } finally {
             httpclient.getConnectionManager().shutdown();
         }
    }
}

1 行目 19 列目の戻り値の json にエラーがあるようです。

スレッド「メイン」com.google.gson.JsonSyntaxException での例外: java.lang.IllegalStateException: BEGIN_OBJECT が必要でしたが、1 行目 19 列目で STRING でした

4

1 に答える 1

0

あなたが得ている応答(http://api.stackexchange.com/2.0/search?site=stackoverflow&intitle=workaround&tagged=javascriptを押した後)

単純なテキストではありません。JSON応答ですこれを解析するには、 google-gjson のような Java JSON パーサーが必要です。

于 2012-06-04T12:28:18.847 に答える