当我使用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()
在代码上方,我们知道之前的每个请求都会计算符号。
但是,当使用空手道时,我应该怎么办?谢谢!
并且因为每个请求都需要根据查询参数和表单数据计算签名,所以我希望计算可以在基类/方法上执行。
答案 0 :(得分:0)
我对async-http-client
不熟悉,但是可以肯定,这只是OAuth身份验证。因此,请参考以下示例:oauth2.feature
上面的示例是当您通过向服务器发出HTTP请求来获取OAuth令牌时。
但是,如果您只有密钥和机密(OAuth 1?),那么您必须使用Java来执行计算签名的步骤,而Karate目前尚未内置。看来我们必须编写类似于以下代码:OAuthSignatureCalculatorInstance.java
您可能已经知道Karate在重用Java方面有很好的支持。
到目前为止,还没有人要求这样做,因此我假设HTTP客户端始终可以提出一个附加请求来获取Authorization
标头,因此您无需进行计算。