在linkedin中的Http Request中的授权标头

您好我的servlet代码我代表用户请求服务器access_token我可以使用以下代码请求:

OAuthRequest request2 = new OAuthRequest(Verb.GET,"https://api.linkedin.com/v1/people/~:(first-name,last-name,email-address)?oauth2_access_token="+accesstok); 

但我如何使用授权标题请求如下:

 GET /v1/people/~ HTTP/1.1 Host: api.linkedin.com Connection: Keep-Alive Authorization: Bearer AQXdSP_W41_UPs5ioT_t8HESyODB4FqbkJ8LrV_5mff4gPODzOYR 

我正在使用以下方式,但不是wrking:

 private static final String PROTECTED_RESOURCE_URL = "/v1/people/~:(first-name,last- name,email-address) HTTP/1.1 Host: api.linkedin.com Connection: Keep-Alive Authorization: Bearer "; Object AccessToken= o.get("access_token"); String accesstok=AccessToken.toString(); OAuthRequest request2 = new OAuthRequest(Verb.GET,PROTECTED_RESOURCE_URL+accesstok); 

谢谢

您可以使用apache.http库。 您不需要一些OAuth库或任何东西。 OAuth协议非常容易处理,您可以使用普通的http请求来完成。 这是一个apache-http库的例子。

[编辑]我更改了代码,为您提供了一个完整的示例,如何使用这些库。

 import java.io.IOException; import org.apache.http.HttpResponse; import org.apache.http.ParseException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; public class OAuthConnect { public static void main(String[] args) { try { HttpClient httpclient = HttpClientBuilder.create().build(); // the http-client, that will send the request HttpGet httpGet = new HttpGet(""); // the http GET request httpGet.addHeader("Authorization", "Bearer AQXdSP_W41_UPs5ioT_t8HESyODB4FqbkJ8LrV_5mff4gPODzOYR"); // add the authorization header to the request HttpResponse response = httpclient.execute(httpGet); // the client executes the request and gets a response int responseCode = response.getStatusLine().getStatusCode(); // check the response code switch (responseCode) { case 200: { // everything is fine, handle the response String stringResponse = EntityUtils.toString(response.getEntity()); // now you have the response as String, which you can convert to a JSONObject or do other stuff break; } case 500: { // server problems ? break; } case 403: { // you have no authorization to access that resource break; } } } catch (IOException | ParseException ex) { // handle exception } } } 

在这里,您可以找到可以添加为库的jar文件:

Apache HTTP-Core v 4.3.3
Apache HTTP-Client v 4.3.6

您也可以从Apache页面下载该jar文件

正如您将看到的,这些库为您提供了处理访问API可能需要的所有请求的所有内容( GET POST DELETE.. )。 您可以更改标题并处理作为响应的内容。 我知道它看起来很复杂,但有了这个,您就可以完全控制OAuth请求,而不需要依赖任何库。

[又一个编辑]
当您从Apache页面下载zip文件时,需要将它们解压缩,并且您需要的jar文件位于lib文件夹中。

 httpcomponents-core-4.3.3 +-examples +-lib +-commons-cli-1.2.jar +-httpcore-4.3.3.jar <-- this one you need +-httpcore-ab-4.3.3.jar ... 

httpClient

 httpcomponents-client-4.3.6 +-examples +-lib +- commons-codec-1.6.jar +- ... +- httpclient-4.3.6.jar <-- this one +- ...