Bing Search API のメモ

研究で使っていたYahoo!の検索APIが提供終了してしまって,Bing Search API を使わなければいけなくなったので,Javaで使えるようにするまでのメモ書きです.

完全に自分用のメモ書きなので,有用な情報はあまりないと思われまする.

必要なこと

  1. Bing Search API | Windows Azure Marketplaceにアクセスして,右側にあるプランを選択する.今回は5000トランザクション/月までの無料のプラン.
  2. いろいろ登録する.
  3. アカウントキーはサインイン後にマイページで確認できる.

困ったこと

  • Bing Search APIJavaのサンプルコードが少ない!
  • Basic認証まわりでハマりやすい.わたしも認証の部分でかなり時間を取られた.
    • これは詳しい人であればハマらないのかも…

JavaでのBasic認証については,以下のページを参考にさせていただきました.

Basic認証まわりさえクリアできれば,あとはこれまで使ってたソースコードちょちょいと修正するのみでOKでした.

Basic認証まわりのコード

どなたかの参考になれば幸いです.

String query = "\'ぬこ\'"; // クエリはシングルコーテーションで囲わないと400が返ってくる
String acctKey = "your account key";
String rootUri = "https://api.datamarket.azure.com/Bing/SearchWeb/v1/Web";

byte[] encoding = Base64.encodeBase64((acctKey + ":" + acctKey).getBytes());
String accountKeyEnc = new String(encoding);
 
// 検索用URLの作成
URL url = new URL(rootUri + "?Query=" + URLEncoder.encode(query, "UTF-8"));
		
// Basic認証
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestProperty("Authorization", "Basic " + accountKeyEnc);
connection.connect();