Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #3  
Старый 27.08.2017, 19:04
Shaft Shaft вне форума
Новичок
 
Регистрация: 15.05.2013
Сообщения: 74
Версия Delphi: 7/10.4
Репутация: 12
По умолчанию

В общем дело такое, что код на пыхе не работает. Нашел на одном форуме что раньше он работал а сейчас нет. Специально повесил Апач и проверил.

Первые 2 обращения к postData думаю верны. Пробовал в них менять значения и происходит ошибка. Да и authToken сервер присылает.
Судя по всему третий запрос не правильно формируется. Расковырял .apk оригинального приложения. Вот код формирования третьего запроса
Код:
private String encodeBasicAuth(String paramString1, String paramString2)
  {
    return Base64Utils.encode(paramString1 + ":" + paramString2);
  }
  
  public TokenResponse authenticate(String paramString)
  {
    try
    {
      URIBuilder localURIBuilder = new URIBuilder().base(String.format("https://%s/token", new Object[] { this.endpointProvider.get() }));
      paramString = new URIBuilder().param("grant_type", "authorization_code").param("code", paramString).param("redirect_uri", (String)this.redirectUrlProvider.get()).build();
      Object localObject = encodeBasicAuth((String)this.clientIdProvider.get(), (String)this.clientSecretProvider.get());
      localObject = ac.b("Authorization", "Basic " + (String)localObject);
      paramString = new HttpDriver.RequestBody("application/x-www-form-urlencoded; charset=utf-8", paramString.getBytes());
      paramString = this.http.postAsJson(TokenResponse.class, localURIBuilder.build(), (Map)localObject, paramString);
      if (paramString.isSuccessful()) {
        return (TokenResponse)paramString.getContent();
      }
      Log.severe("Failed authorization attempt, " + paramString);
      throw new NetworkException(paramString);
    }
    catch (IOException paramString)
    {
      Log.severe("Error attempting to refresh, err=" + paramString);
      throw new NetworkException(598, paramString.getMessage());
    }
  }
Некоторые константы:
endpointProvider = auth.riotgames.com
redirectUrlProvider = http://localhost/oauth2-callback
clientIdProvider = leagueconnect
clientSecretProvider = amVYw7iK_qSaGUNqxRvzgs16EMgdEUdu1mDVdMNJDC4
paramString который передается в функцию, это authToken полученный после второго запроса

Тут я совсем не силен. Если кто знает подскажите как эта функция формирует запрос.
Все что я смог это
Код:
function encodeBasicAuth(s1,s2:string):string;
begin
  Result:=EncodeBase64(s1+':'+s2);
end; 

Последний раз редактировалось Shaft, 28.08.2017 в 08:57.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:27.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025