随分と前にGAE/J の Urlフェッチについて書きましたが、

今回は、Basic認証のページをフェッチする機会があったのでメモっておきます。

Low Level API で urlFetch しました。

こんな感じです。

URL fetchurl = new URL("http://somewhere.to.see/");
HTTPRequest request = new HTTPRequest(fetchurl);
String authStr = "Basic " + Base64.encode((name+":"+pass).getBytes());
request.addHeader(new HTTPHeader("Authorization", authStr));
HTTPResponse res = URLFetchServiceFactory.getURLFetchService().fetch(request);
String body = new String(res.getContent(), encoding);

Base64のエンコーディングは、Web上のサンプルとかでは

import com.google.appengine.repackaged.com.google.common.util.Base64;

となっている例が多いですが、eclipse上で怒られます。

なのでBase64クラスをeclipse で Ctrl+Shift+Oして適当に見繕ったものを使いました。

org.apache.xerces.impl.dv.util.Base64

とか

com.sun.org.apache.xml.internal.security.utils.Base64

とか。

参考にさせて頂いたサイト達

URLフェッチ機能でBasic認証を使う – うなの日記

java.net の使用 – Google App Engine — Google Developers

java – Using HTTP Basic-Auth with Google App Engine URLFetch service – Stack Overflow