В общем дело такое, что код на пыхе не работает. Нашел на одном форуме что раньше он работал а сейчас нет. Специально повесил Апач и проверил.
Первые 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;