问题
I am implement google cloud print service for my (java) web application,I have followed all the instruction but still getting "Credentials required" in response.Here is my code :
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;
}
This is a simple search hit.
回答1:
use "Bearer " instead of "GoogleLogin auth=" in header while setting Authorization access token, also note the space with bearer it is important
来源:https://stackoverflow.com/questions/45279644/google-cloud-print-user-credentials-required