Как получить URL перенаправления - PullRequest
1 голос
/ 28 июля 2010

У меня проблема с перенаправлением, в моей работе мне нужно установить соединение с URL-адресом, который автоматически переходит на другой URL-адрес, в этот момент он принимает учетные данные (имя пользователя и пароль) и перенаправляет на URL-адрес, содержащий параметр, которыйнужен мне.Как я могу принять этот параметр?

Если быть точным, я должен сделать это:

Вставить веб-браузер с URL-адресом https://graph.facebook.com/oauth/authorize с вашим client_id и типом, установленным в user_agent.Поскольку ваше приложение внедряет небольшое окно, вы можете запустить компактную «всплывающую» версию диалога авторизации с параметром display:

graph.facebook.com/oauth/authorize?
    client_id=...&
    redirect_uri=www.facebook.com/connect/login_success.html&
    type=user_agent&
    display=popup

После того, как пользователь авторизует ваше приложение, мы перенаправляем его обратно на www.facebook.com/connect/login_success.html с токеном доступа во фрагменте URL: www.facebook.com/connect/login_success.html#access_token=...&expires_in=... Перехватить переадресацию выше и прочитать токен доступа из URL.Используйте токен доступа для извлечения данных из Graph API от имени пользователя: graph.facebook.com/me?access_token=....

Мне нужно access_token.

1 Ответ

0 голосов
/ 28 июля 2010

вы можете использовать для этого apache http компоненты httpclient , он будет автоматически следовать перенаправлениям

HttpClient client=new HttpClient();
GetMethod get=new GetMethod("graph.facebook.com/oauth/authorize?client_id=...&   redirect_uri=www.facebook.com/connect/login_success.html&type=user_agent&display=popup");
int status=client.exectueMethod(get);

Тогда у вас будет нужная вам информация в заголовке местоположения ответа, доступ к которому можно получить с помощью:

String location=get.getResponseHeader("location").getValue();

и проанализируйте заголовок местоположения для нужного фрагмента URL.

надеюсь, что помогло

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...