Использование URLFetchService/URL — Google appengine для java

Я использую URL Fetch Java API http://code.google.com/appengine/docs/java/urlfetch/overview.html#Fet... чтобы получить информацию с graph.facebook.com, однако я продолжаю получать сообщение об ошибке: java.lang.IllegalArgumentException на java.net .URI.create(URI.java:842) ... Причина: java.net.URISyntaxException: недопустимый символ в запросе по индексу 58: https://graph.facebook.com/me?access_token=... Есть идеи?


person user458336    schedule 19.05.2011    source источник


Ответы (1)


Сообщение об ошибке в значительной степени говорит само за себя: URI, который вы пытаетесь получить, содержит недопустимый символ в индексе 58. Я также получаю исключение с вашим URL:

public static void main(String[] args) throws Exception {

    String s = "https://graph.facebook.com/me?access_token=593172238640599|e2a5e8bb8625b56358fe6219.1-530295086|zt7TYKmSF4e3WLWbF8jc7_P8MK8";

    URI uri = new URI(s);

}

бросает:

Исключение в потоке «основной» java.net.URISyntaxException: недопустимый символ в запросе по индексу 58: ="nofollow">https://graph.facebook.com/me?access_token=593172238640599|e2a5e8bb8625b56358fe6219.1-530295086|zt7TYKmSF4e3WLWbF8jc7_P8MK8 на java.net.URI$Parser.fail(URI.java:28) java.net.URI$Parser.checkChars(URI.java:2982) в java.net.URI$Parser.parseHierarchical(URI.java:3072) в java.net.URI$Parser.parse(URI.java:3014) по адресу java.net.URI.(URI.java:578)

Символ в позиции 58 - это "|" персонаж. Вам нужно закодировать URL этого символа (и других его вхождений).

person Richard H    schedule 19.05.2011
comment
Проблема в том, что он отлично работает в отдельном приложении, но не работает в Google Appengine для java. - person user458336; 19.05.2011
comment
Может дело в длине? Есть ли ограничение на длину URL-адреса, который вы можете найти, используя приложение Google для java. - person user458336; 20.05.2011
comment
@ user458336 - можешь вставить URL? - person Richard H; 20.05.2011
comment
Он работает в стандартном веб-приложении, а в java-приложении эта ошибка появляется как раз при его развертывании в среде разработки Google AppEngin4java. Вот почему я не думаю, что это связано с содержанием URL-адреса! - person user458336; 20.05.2011
comment
Выдает исключение URISyntaxException. Есть проблема с URL-адресом, даже если он работает в вашей системе (одинаковы ли версии java в GAE??). Вставьте свой URL. - person Richard H; 20.05.2011
comment
вот URL: graph.facebook.com/ - person user458336; 20.05.2011