1

Google App Engine を使用して、次のようなリクエストを作成しています。

URLFetchService service = URLFetchServiceFactory.getURLFetchService();
HTTPResponse response = service.fetch(request);

HTML を返すかどうかを検出するために、応答を文字列化し、HTML タグの存在を探しています。

String responseAsString = new String(response.getContent());

if (responseAsString.contains("<html>")){
    // is html
}

HTML かどうかを検出するより良い方法は何でしょうか?

また、入力 URL は必ずしも example.com/page.html のようにわかりやすいとは限りません。問題は、example.com/mystery のようになる可能性があることです。

4

1 に答える 1

2
HTTPResponse response = URLFetchServiceFactory.getURLFetchService()
            .fetch(new URL("url_to_fetch"));
List<HTTPHeader> headers = response.getHeaders();

for (HTTPHeader h : headers) {
    if (h.getName().equals("Content-Type")) {
        /*
        * could be text/html; charset=iso-8859-1.
        */
        if (h.getValue().startsWith("text/html")) {
            /* TODO do sth. */
        }
    }
}

https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/urlfetch/HTTPResponse#getHeaders()

また、他のMIME タイプも確認できます。

于 2013-07-15T21:17:52.010 に答える