gpt4 book ai didi

java - 使用路标签署 HTTP 消息时获取 401

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:14:52 26 4
gpt4 key购买 nike

我正在将我的网络应用程序与 AppDirect 集成,为此,我使用 jersey 创建了一个 java rs API。

当我订阅一个事件时,我会得到一个映射,其中包含用于签署我的请求的 oauth 值( key 和 secret )和一个我向其发出签名提取的事件 URL。

我正在按预期获得这​​些值(oauth 和 eventurl)。

现在,当我尝试使用库 signpost 发出签名提取时,我使用以下代码:

OAuthConsumer consumer = new DefaultOAuthConsumer(consumer_key, secret);
// create an HTTP request to a protected resource
URL url = new URL(eventUrl);
HttpURLConnection request = (HttpURLConnection) url.openConnection();

// sign the request
consumer.sign(request);

// send the request
request.connect();

我收到此错误消息:

getResponseMessage: Unauthorized
getresponsecode: 401

我还尝试了以下测试值:

  1. url = "https://www.appdirect.com/api/integration/v1/events/dummyOrder ";
  2. dummyKey = "虚拟";
  3. dummySecret = " secret ";但我得到了相同的结果。

请问我该如何解决?

我也试过添加这个:

request.setRequestMethod("GET");         

request.setRequestProperty("Authorization", "OAuth");

request.setRequestProperty("Host", "...");

request.setRequestProperty("Content-Type", "application/xml");

request.setRequestProperty("oauth_nonce", oauth_nonce);

request.setRequestProperty("oauth_signature", oauth_signature);

request.setRequestProperty("oauth_signature_method", oauth_signature_method);

request.setRequestProperty("oauth_timestamp", oauth_timestamp);

request.setRequestProperty("oauth_version", oauth_version);

还尝试在 Authorization 属性中使用 key:secret

最佳答案

Dummy keys (oauth)

No-auth

这是通过 Postman Chrome 扩展程序测试时此服务的行为。如果您使用的是 OAuth 提供程序,那么您需要为 AppDirect 和 secret 获取有效的 api key 。

顺便说一句,第二个屏幕截图显示您不需要将 OAuth token 发送到 appdirect 到 https://www.appdirect.com/api/integration/v1/events/dummyOrder , 因为它授权任何 url。

因此,根据您的说明,您必须添加适当的( secret 和 key ),然后 AppDirect OAuth 服务器将返回一个有效 token ,您将在寻址 AppDirect 的存储库时使用该 token 。或者您可以在每个请求中发送 key 。

关于java - 使用路标签署 HTTP 消息时获取 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37457427/

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