Как рассчитать сигнатуру согласно параметру входного запроса при использовании каратэ? - PullRequest
0 голосов
/ 06 сентября 2018

Когда я использую https://github.com/AsyncHttpClient/async-http-client, Я использую калькулятор с методом подписи:

client.preparePost(host + uri + query)
        .addFormParam("photo_id", "123456")
        .addFormParam("user_id", "7890")
        .addFormParam("token", "helloworld")
        .addFormParam("os", 'ios')
        .setSignatureCalculator(sign) // inject calculator class
        .execute(new AsyncCompletionHandler<Response>() {
            @Override
            public Response onCompleted(Response response) {
                Assert.assertEquals(response.getStatusCode(), 200);
                return response;
            }
        })
        .toCompletableFuture()
        .join()

Над кодом мы знаем каждый запрос, прежде чем вычислить знак.

Но, когда я использую каратэ, как мне быть? спасибо!

И поскольку каждый запрос должен вычислять сигнатуру в соответствии с параметром запроса и данными формы, я надеюсь, что вычисление может быть выполнено для базового класса / метода.

1 Ответ

0 голосов
/ 06 сентября 2018

Я не знаком с async-http-client, но уверен, что это только проверка подлинности OAuth. Так что просто обратитесь к этому примеру: oauth2.feature

Итак, приведенный выше пример - когда вы получаете токен OAuth, отправляя HTTP-запрос на сервер.

Но если у вас есть только ключи и секреты (OAuth 1?) - тогда вы должны использовать Java для выполнения шага вычисления сигнатуры, и в настоящее время это не встроено в каратэ. Похоже, мы должны написать код, подобный следующему: OAuthSignatureCalculatorInstance.java

Возможно, вы уже знаете, что каратэ имеет очень хорошую поддержку для повторного использования Java.

Никто до сих пор не запрашивал это, поэтому я предполагаю, что HTTP-клиенты всегда могут сделать дополнительный запрос для получения заголовка Authorization, поэтому вам не нужно его вычислять.

...