如何使用 Scribe 进行 POST 调用并在 Java 中获取具有 OAuth 1.0 身份验证的数据?
How to make a POST call using Scribe and fetch data having OAuth 1.0 Authentication in Java?
我需要对具有 OAuth 1.0 身份验证的 URL 进行 post 调用。我对所有这些都很陌生。通过研究,我在 Java 中了解了 Scribe,但我只能找到使用 Scribe 的 Get 调用。我已经拥有用于 OAuth 1.0 身份验证的 consumerKey 和 consumerSecret 密钥。有没有关于如何成功实现这一目标的建议。
使用 postman 我可以成功获取数据,但我想使用 Java 来实现它。
我试过这样的东西
我这样试过
public String getSmartCommPDF(@RequestBody Model model) throws IOException {
OAuthService service = new ServiceBuilder().provider(ModelAPI.class).apiKey(consumerKey)
.apiSecret(consumerSecret).build();
OAuthRequest request = new OAuthRequest(Verb.POST, url);
ObjectMapper mapper = new ObjectMapper();
request.addHeader("Content-Type", "application/json;charset=UTF-8");
request.addPayload(mapper.writeValueAsString(model));
Token accessToken = new Token("", ""); // not required for context.io
service.signRequest(accessToken, request);
Response response = request.send();
System.out.println("Response = " + response.getBody());
return "Success";
}
这是我的 ModelAPI class
public class ModelAPI extends DefaultApi10a {
@Override
public String getRequestTokenEndpoint() {
return "https://domain/one/oauth1/api/v6/job";
}
@Override
public String getAccessTokenEndpoint() {
return "https://domain/one/oauth1/api/v6/job";
}
@Override
public String getAuthorizationUrl(Token requestToken) {
return "https://domain/one/oauth1/api/v6/job";
}
}
这部分代码没有抛出任何错误,但是响应主体是空的。我哪里出错了,有人知道吗?
谢谢。
数据正在输入流中返回。所以,我用了
response.getStream();
并将其写入文件并使用它。
我需要对具有 OAuth 1.0 身份验证的 URL 进行 post 调用。我对所有这些都很陌生。通过研究,我在 Java 中了解了 Scribe,但我只能找到使用 Scribe 的 Get 调用。我已经拥有用于 OAuth 1.0 身份验证的 consumerKey 和 consumerSecret 密钥。有没有关于如何成功实现这一目标的建议。
使用 postman 我可以成功获取数据,但我想使用 Java 来实现它。
我试过这样的东西
我这样试过
public String getSmartCommPDF(@RequestBody Model model) throws IOException {
OAuthService service = new ServiceBuilder().provider(ModelAPI.class).apiKey(consumerKey)
.apiSecret(consumerSecret).build();
OAuthRequest request = new OAuthRequest(Verb.POST, url);
ObjectMapper mapper = new ObjectMapper();
request.addHeader("Content-Type", "application/json;charset=UTF-8");
request.addPayload(mapper.writeValueAsString(model));
Token accessToken = new Token("", ""); // not required for context.io
service.signRequest(accessToken, request);
Response response = request.send();
System.out.println("Response = " + response.getBody());
return "Success";
}
这是我的 ModelAPI class
public class ModelAPI extends DefaultApi10a {
@Override
public String getRequestTokenEndpoint() {
return "https://domain/one/oauth1/api/v6/job";
}
@Override
public String getAccessTokenEndpoint() {
return "https://domain/one/oauth1/api/v6/job";
}
@Override
public String getAuthorizationUrl(Token requestToken) {
return "https://domain/one/oauth1/api/v6/job";
}
}
这部分代码没有抛出任何错误,但是响应主体是空的。我哪里出错了,有人知道吗?
谢谢。
数据正在输入流中返回。所以,我用了
response.getStream();
并将其写入文件并使用它。