gpt4 book ai didi

java - 通过 okhttp 客户端处理 woocommerce api 的签名基字符串时出现意外的 url

转载 作者:太空宇宙 更新时间:2023-11-04 11:36:01 25 4
gpt4 key购买 nike

生成签名的url是

GET&http%3A%2F%2Fprojectrepo.net%2Fscoop%2Fwp-json%2Fwc%2Fv2%2Forders&oauth_consumer_key%3Dck_2f53925cb6d2c8f96407f09f67f5f118d01ed80e%26oauth_signature_method%3DHMAC-SHA1

没有utf编码的字符串是

GET&http://----.net/----/wp-json/wc/v2/orders&oauth_consumer_key=----&oauth_signature_method=----

问题是当这个url通过okhttp客户端生成签名时,日志中显示“unexpected url”错误。

Request request = new Request.Builder()
.url(signatureBaseString)
.build();
Response response = null;
response = client.newCall(request).execute();

出了什么问题? url是utf编码的,需要生成签名,okhttp客户端不能用来生成签名吗?

最佳答案

找到解决方案。

android中生成签名的代码如下

Mac mac = null;
mac = Mac.getInstance("HMAC-SHA1");
String secret = oauthConsumerSecretKeyStringValue+"&";
mac.init(new SecretKeySpec(secret.getBytes("utf-8"), "HMAC-SHA1"));
signature = Base64.encodeToString(mac.doFinal(signatureBaseString.getBytes("utf-8")), 0).trim();

oauthConsumerSecretKeyStringValue 变量具有消费者 key 。

签名基字符串是除了oauth_signature之外包含所有oauth参数的字符串。该字符串用于生成签名。

现在,“GET&”字符在签名生成时是强制性的。但是,当发布数据时,它应该发布在没有“GET&”字符的 URL 上。

感谢大家抽出时间。

关于java - 通过 okhttp 客户端处理 woocommerce api 的签名基字符串时出现意外的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43272116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com