查看https://developer.linkedin.com/docs/oauth2我尝试在这里获得访问令牌。
此代码有什么问题?
OAuthClient oAuthClient = new OAuthClient(new URLConnectionClient());
TokenRequestBuilder r = OAuthClientRequest
.tokenLocation("https://www.linkedin.com/oauth/v2/accessToken")
.setCode(code)
.setGrantType(GrantType.AUTHORIZATION_CODE)
.setClientId(LinkedInClientID)
.setClientSecret(LinkedInClientSecret)
.setRedirectURI("http://localhost:8080/authenticatedLinkedIn");
Map<String,String> m = new HashMap<String,String>();
m.put("Content-Type", "application/x-www-form-urlencoded");
int bodyLength = r.buildBodyMessage().getBody().length();
System.out.println("Body l = " + bodyLength);
m.put("Content-Length", Integer.toString(bodyLength));
r.buildHeaderMessage().setHeaders(m);
OAuthClientRequest request = r.buildQueryMessage();
OAuthJSONAccessTokenResponse tk = oAuthClient.accessToken(request, OAuth.HttpMethod.POST);
我有以下错误:
服务器返回的http响应代码:411 for URL: /p>
您需要发送带有params on urlencond的params的邮政请求... so
第一个更改:
OAuthClientRequest request = r.buildQueryMessage();
with:
OAuthClientRequest request = r.buildBodyMessage();
那么,您不需要将任何标题OLTU放置为您。
希望它会有所帮助。