HTTP响应代码:411 for linkedIn和apacheoltu



查看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放置为您。

希望它会有所帮助。

最新更新