Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Google App Engine for Javaを使ってみよう!
(4)URL Fetch Java API

Google App Engine for Javaを使ってみよう! (4)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/05/20 14:00

 この連載では2009年4月に発表されたJava版のGoogle App Engineを解説します。今回は他のウェブサービスから情報を取得するAPI「URL Fetch Java API」の使い方を解説します。サンプルとして、「Pathtraq」(パストラック)が提供するAPIを利用し、指定したURLに含まれる人気ページの一覧をJSON形式で受信するプログラムを作成してみます。

目次

はじめに

 Googleのインフラで実行されるクラウドサービス「Google App Engine」が2009年4月7日にJavaに対応しました。Javaエンジニアにも利用できるようになった、Google App Engineを一緒に勉強して行きましょう!

 今回は、他のサーバと通信をするための、URL Fetch Java APIを勉強したいと思います。

対象読者

  • ウェブサービス開発に興味のあるJavaエンジニア
  • Google App Engine for Javaに興味がある方

必要な環境

  • 「Google Plugin for Eclipse」がインストールされている、Eclipse 3.3(Europa)か3.4(Ganymede)

 開発環境の構築手順については、第1回の解説を参照してください。

URL Fetch Java APIとは?

 Google App Engineではソケット通信が制限されており、今回勉強するURL Fetch Java APIを利用する以外の方法で、他のサーバと通信することはできません。URL Fetch Java APIでは、次のことができます。

  • HTTP/HTTPSのコネクション作成
  • GET/POST/PUT/HEAD/DELETEメソッドによるリクエスト
  • リクエスト時のヘッダー設定
  • レスポンスの取得 
  • リダイレクトの制御  

 送受信サイズは、共に1MBに制限されているのでご注意ください。また、第1回で説明したGoogle App Engineの制限とは別に、URL Fetch Java APIには以下の制限があります。Google App EngineとURL Fetch Java APIの両方が制限値以下の状態でないとAPIの呼び出しができません。

 今のところ、課金によってこれらの制限値を増やすことはできません。

URL Fetch Java APIの制限(1日あたり)
リソース 単位
API呼び出し 657084回
データ送信 4ギガバイト
データ受信 4ギガバイト

URL Fetch Java APIを使ってみよう!

 Google App Engineの「URL Fetch Java API」は、java.net.URLConnectionと関連するJavaの標準APIのインターフェイスになっているので、これらの標準APIを利用したことのある方はすぐに使えます。

 まずは、他のウェブサービスからデータを取得するソースコードを見てみましょう。

URL urlPathtraq = new URL("http://api.pathtraq.com/pages?api=json&url=" + url);// (1)
BufferedReader reader = new BufferedReader(new InputStreamReader(urlPathtraq.openStream()));// (2)
String line;
while ((line = reader.readLine()) != null) { // (3)
	// メイン処理
}
  1. 接続先のURLを指定してURLインスタンスを取得します。
  2. 入力ストリームをバッファーに取り込みます。
  3. バッファーのデータを1行ずつ取り出します。 
社内サーバから安全にデータを引き出す

 「Google Secure Data Connector」というテクノロジーを利用すると、URL Fetch Java APIを利用して、ファイアーウォール内にある社内サーバからデータを取得することができます。興味のある方は調べてみるとよいでしょう。

プロジェクトの作成

 以下の設定でGWTプロジェクトを作成してください。GWTプロジェクトの作成手順については、第1回の解説を参照してください。

プロジェクトの設定
Project name UrlFetchTest
Package com.daisukeyamashita.test.urlfetch

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 山下 大介(ヤマシタ ダイスケ)

      京都大学を中心とした、産官学共同プロジェクトのSOBAプロジェクトに参加後、同プロジェクトで開発したP2P配信によるVoIP技術を2005年に商業化。オープンソース、VoIP、P2P、クラウドコンピューティングに精通。趣味はGoogleの追っかけ。現在は、株式会社SOBAプロ...

バックナンバー

連載:Google App Engine for Javaを使ってみよう!

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5