使用空手道时如何根据输入查询参数计算签名?

时间:2018-09-06 10:33:17

标签: karate

当我使用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 :(得分:0)

我对async-http-client不熟悉,但是可以肯定,这只是OAuth身份验证。因此,请参考以下示例:oauth2.feature

上面的示例是当您通过向服务器发出HTTP请求来获取OAuth令牌时。

但是,如果您只有密钥和机密(OAuth 1?),那么您必须使用Java来执行计算签名的步骤,而Karate目前尚未内置。看来我们必须编写类似于以下代码:OAuthSignatureCalculatorInstance.java

您可能已经知道Karate在重用Java方面有很好的支持。

到目前为止,还没有人要求这样做,因此我假设HTTP客户端始终可以提出一个附加请求来获取Authorization标头,因此您无需进行计算。