JavaのGoogleカスタム検索APIを使用して、クエリに応じてGoogleの検索結果を取得しています。私は次のようにコードは、他の記事の助けを借りて、このコードを書かれている:Googleによるカスタム検索API V1による10件以上の検索結果
url = new URL("https://www.googleapis.com/customsearch/v1?key="+key+ "&cx="+ cx +"&q="+ searchText+"&alt=json"+"&start="+0+"&num="+30);
HttpURLConnection conn2 = (HttpURLConnection) url.openConnection();
System.out.println("Connection opened!");
conn2.setRequestMethod("GET");
conn2.setRequestProperty("Accept", "application/json");
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn2.getInputStream())));
問題は、私はNUMせずに上記のコードを使用していたときにということであり、それが適切に実行するが、唯一のトップ10を与えているパラメータを開始します結果。だから私はnumと開始パラメータを使用しています。しかし、彼らは問題を作り出しています。ここでは、URLにnumとstartのパラメータをどこに入れるのか理解できません。常にHTTP 400すなわちBad Requestを与えています。私はDocumentationページを読んでいますが、Urlにこれらの2つのパラメータをどこに置くべきかについても明確な指示はありません。
誰かが私にこの問題を解決するのに役立つなら、私は本当に感謝します。ありがとうございました。
はい、どこに開始パラメータを入れる必要があるのか分かりません。なぜなら、このようにURLの最後にstart = 0またはstart = 11を追加すると、https://www.googleapis.com/customsearch/v1?key = "+ key +"&cx = "+ cx +"&q = "+ searchText +"&alt = json "+"&start = "+ 0 HTTPステータス400、つまりBad Requestです。 startパラメータを使用してこのURLをフレームする方法を正確に指定してください。 – Joy
コードで、使用しているURLを出力してください。System.out.println(url.toString());のようなものをコピーしてブラウザに表示します。 JSON形式の完全なエラーです(サンプル - これを得るためにパラメータ "q"を省略しました)。問題を解決できない場合は、ここに取得した結果を投稿してください:{ "error": { "エラー":[ { "ドメイン": "グローバル"、 "理由": "必須"、 "メッセージ": "必須パラメータ:Q"、 "locationType": "パラメータ"、 "場所": "Q" } ] 、 "code":400、 "message": "必須パラメータ:q" } } –
Googleが賢く設計しました。もっと多くの結果を返すのではなく、もっと多くの要求をするようにしてください... -.- – simon