2017-07-24 51 views
0

我实现我的(Java)的Web应用程序谷歌云打印服务,我按照所有的指令,但在response.Here“所需的证书”仍然得到是我的代码:谷歌云打印用户的认证要求

public static void main(String[] args) { 
    HttpPost printPost = new HttpPost(
      "https://www.google.com/cloudprint/search?output=json"); 
    printPost.setHeader("Authorization", 
      "GoogleLogin auth=" +getAccessToken()); 
    printPost.setHeader("scope", 
      "https://www.googleapis.com/auth/cloudprint"); 
    printPost.setHeader("X-CloudPrint-Proxy", "printingTest"); 
    DefaultHttpClient httpclient = new DefaultHttpClient(); 
    try { 
     HttpResponse printResponse = httpclient.execute(printPost); 
     System.out.println(printResponse.getStatusLine()); 
    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 
public static String getAccessToken() { 

    Credential credential = new GoogleCredential.Builder() 
      .setTransport(new NetHttpTransport()) 
      .setJsonFactory(new JacksonFactory()) 
      .setClientSecrets(
        "client_id", 
        "client_secret").build(); 
    try { 
     credential 
       .setRefreshToken("refresh_token"); 
     credential.refreshToken(); 
     return credential.getAccessToken(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return null; 

} 

这是一个简单的搜索命中。

回答

0

在设置授权访问令牌时,使用“承载”而不是“GoogleLogin auth =”,同时注意带载体的空间,这很重要