SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

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

 この連載では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

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
他のウェブサービスからデータを取得する

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Google App Engine for Javaを使ってみよう!連載記事一覧

もっと読む

この記事の著者

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

  京都大学を中心とした、産官学共同プロジェクトのSOBAプロジェクトに参加後、同プロジェクトで開発したP2P配信によるVoIP技術を2005年に商業化。オープンソース、VoIP、P2P、クラウドコンピューティングに精通。趣味はGoogleの追っかけ。現在は、株式会社SOBAプロジェクト取締役。ブログ:『~ ミネルヴァの梟は黄昏とともに飛び始める ~』所属:株式会社SOBAプロジェクトGoogle Developer Day 2008サポーター, 2009サポーターGoogle App Engine API Expert

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3841 2009/05/20 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング