我在通过他们的 REST API 与 Tradeshift(一家丹麦公司)连接时遇到问题。我有连接所需的信息(令牌、令牌秘密和获取 ID)
这是一个 HTTP 服务,我发送了 HTTP 请求(post、get 和 put),但我没有得到第一个响应(200 OK)说我已连接。
当我使用一个干净的可执行文件获得登录所需信息的公司时,我发送了一个请求,它显示一个错误:无效的令牌(这是公司提供的信息)。
我还尝试使用自己编写的 java 程序进行连接。我用记事本++写的。当我编译并在命令行中运行程序时,我得到了错误。进口是自动进行的还是我必须做其他事情?
我的程序如下:
package com.tradeshift.api.client;
import com.sun.jersey.api.client.*;
import com.sun.jersey.oauth.client.OAuthClientFilter;
import com.sun.jersey.oauth.signature.OAuthParameters;
import com.sun.jersey.oauth.signature.OAuthSecrets;
public class Sample {
public static final String HOSTNAME = "https://api-sandbox.tradeshift.com";
public static final String CONSUMER_KEY = "OwnAccount";
public static final String CONSUMER_SECRET = "OwnAccount";
public static final String TOKEN = "8Hx7xGR4kmH7Tj2K-Q+39Mrsm6DQ-s";
public static final String TOKEN_SECRET = "4tUzAVSrBrPXD+a94vEtDW7NcH7XWQXYY7fgcXb@";
public static final String TENANT_ID = "b59a01fa-8dd7-4d8a-b175-4c72b4a6c891";
public static void main(String[] args) {
Client client = Client.create();
OAuthParameters params = new OAuthParameters().signatureMethod("HMACSHA1").consumerKey(CONSUMER_KEY).token(TOKEN).version();
OAuthSecrets secrets = new OAuthSecrets().consumerSecret(CONSUMER_SECRET).tokenSecret(TOKEN_SECRET);
OAuthClientFilter filter = new OAuthClientFilter(client.getProviders(), params, secrets);
WebResource res = client.resource(HOSTNAME + "/tradeshift/rest/external/network/connections");
res.addFilter(filter);
String networkResult = res.header("X-Tradeshift-TenantId", TENANT_ID).header("User Agent", "TradeshiftJerseyTest/0.1").get(String.class);
System.out.println(networkResult);
}
}