Reddit OAuth2 API круговое перенаправление - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь отправить запрос авторизации POST в API Reddit для получения токена доступа, следуя этой документации: https://github.com/reddit-archive/reddit/wiki/oauth2

При выполнении запроса я получаю следующее исключение:

Причина: org.apache.http.client.CircularRedirectException: Круговое перенаправление на 'https://www.reddit.com/api/v1/access_token'

Вот код Kotlin, который использует Apache Commons HTTP:

@Test
fun testOauthAuthenticationManual() {

    val client = DefaultHttpClient()
    client.redirectStrategy = LaxRedirectStrategy()
    val post = HttpPost("https://www.reddit.com/api/v1/access_token")
    post.addHeader("Authorization", "Basic a3E0RWVocURGeWVoUWc6UVYyYjU0cldDeTJ4aHNZc292ZXNTcVVQc2tJ")
    post.addHeader("Content-Type", "application/x-www-form-urlencoded")
    post.addHeader("User-Agent", "Just testing")
    post.addHeader("Host", "reddit.com")

    val parameters = listOf<NameValuePair>(
            BasicNameValuePair("grant_type", "authorization_code"),
            BasicNameValuePair("redirect_uri", "http://address.co.uk"),
            BasicNameValuePair("code", "2dYqDpjs6lA7FVvUILgDaxKS2ww"))

    post.entity = UrlEncodedFormEntity(parameters, "UTF-8")

    try {
        val response = client.execute(post)
        if (response.statusLine.statusCode == 200) {
            // continue
        } else {
            throw HttpClientException(response.statusLine.reasonPhrase)
        }
    } catch (e: IOException) {
        throw HttpClientException("Could not execute HTTP request: ", e)
    }
}

Что я делаю не так при настройке моего запроса?

1 Ответ

0 голосов
/ 27 декабря 2018

Если кто-то еще получит эту ошибку - проблема была исправлена ​​путем удаления:

post.addHeader("User-Agent", "Just testing")
post.addHeader("Host", "reddit.com")
...