Google マップでいくつかのショップの座標を見つける必要があるプロジェクトに取り組んでいます。各店の住所はすでにわかっています。
Google Geocoding APIで少し遊んでみましたが、必要なものだと思います。コードで行う必要があるのは、DBMS に接続し、item_id とアドレスを取得し、geocoding API の有効な URL を生成し、JSON データを処理することだけです。取得します。
理由はわかりませんが、生成した URL はブラウザ (Chrome 23 および最新の Safari、OS X) では機能しますが、Jsoup では機能しません。Chrome でページのソースを確認しましたが、完全に有効な HTML のようです。では、Jsoup の何が間違っているのでしょうか。
コード スニペット (実行可能、同じ例外が発生します):
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class RandomClass {
public static void main(String args[]) {
Document doc = null;
try {
String url = "http://maps.googleapis.com/maps/api/geocode/json?address=0+164+W+75th+St,+New%20York,+NY+10024&sensor=false";
String ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17";
doc = Jsoup.connect(url).timeout(60 * 1000).userAgent(ua).get();
} catch (IOException e) {
e.printStackTrace();
}
}
}
スロー
org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, application/xml, or application/xhtml+xml. Mimetype=application/json; charset=UTF-8, URL=http://maps.googleapis.com/maps/api/geocode/json?address=164+W+75th+St,+New%20York,+NY+10024&sensor=false
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:436)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:393)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:159)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:148)
at asdru.RandomClass.main(RandomClass.java:16)