zoukankan      html  css  js  c++  java
  • google-http-java-client(android学习篇2源码)

    package com.google.api.services.samples.googleplus.cmdline.simple;
     
    import com.google.api.client.http.GenericUrl;
    import com.google.api.client.http.HttpRequest;
    import com.google.api.client.http.HttpRequestFactory;
    import com.google.api.client.http.HttpRequestInitializer;
    import com.google.api.client.http.HttpResponse;
    import com.google.api.client.http.HttpResponseException;
    import com.google.api.client.http.HttpTransport;
    import com.google.api.client.http.javanet.NetHttpTransport;
    import com.google.api.client.json.GenericJson;
    import com.google.api.client.json.JsonFactory;
    import com.google.api.client.json.JsonObjectParser;
    import com.google.api.client.json.jackson2.JacksonFactory;
    import com.google.api.client.util.Key;
     
    import java.io.IOException;
    import java.util.List;
     
    /**
     * Simple example that demonstrates how to use <a
     * href="code.google.com/p/google-http-java-client/">Google HTTP Client Library for Java</a> with
     * the <a href="https://developers.google.com/+/api/">Google+ API</a>.
     *
     * <p>
     * Note that in the case of the Google+ API, there is a much better custom library built on top of
     * this HTTP library that is much easier to use and hides most of these details for you. See <a
     * href="http://code.google.com/p/google-api-java-client/wiki/APIs#Google+_API">Google+ API for
     * Java</a>.
     * </p>
     *
     * @author Yaniv Inbar
     */
    publicclassGooglePlusSample{
     
      privatestaticfinalString API_KEY =
          "Enter API Key from https://code.google.com/apis/console/?api=plus into API_KEY";
     
      privatestaticfinalString USER_ID ="116899029375914044550";
      privatestaticfinalint MAX_RESULTS =3;
     
      staticfinalHttpTransport HTTP_TRANSPORT =newNetHttpTransport();
      staticfinalJsonFactory JSON_FACTORY =newJacksonFactory();
     
      /** Feed of Google+ activities. */
      publicstaticclassActivityFeed{
     
        /** List of Google+ activities. */
        @Key("items")
        privateList<Activity> activities;
     
        publicList<Activity> getActivities(){
          return activities;
        }
      }
     
      /** Google+ activity. */
      publicstaticclassActivityextendsGenericJson{
     
        /** Activity URL. */
        @Key
        privateString url;
     
        publicString getUrl(){
          return url;
        }
     
        /** Activity object. */
        @Key("object")
        privateActivityObject activityObject;
     
        publicActivityObject getActivityObject(){
          return activityObject;
        }
      }
     
      /** Google+ activity object. */
      publicstaticclassActivityObject{
     
        /** HTML-formatted content. */
        @Key
        privateString content;
     
        publicString getContent(){
          return content;
        }
     
        /** People who +1'd this activity. */
        @Key
        privatePlusOners plusoners;
     
        publicPlusOners getPlusOners(){
          return plusoners;
        }
      }
     
      /** People who +1'd an activity. */
      publicstaticclassPlusOners{
     
        /** Total number of people who +1'd this activity. */
        @Key
        privatelong totalItems;
     
        publiclong getTotalItems(){
          return totalItems;
        }
      }
     
      /** Google+ URL. */
      publicstaticclassPlusUrlextendsGenericUrl{
     
        publicPlusUrl(String encodedUrl){
          super(encodedUrl);
        }
     
        @SuppressWarnings("unused")
        @Key
        privatefinalString key = API_KEY;
     
        /** Maximum number of results. */
        @Key
        privateint maxResults;
     
        publicint getMaxResults(){
          return maxResults;
        }
     
        publicPlusUrl setMaxResults(int maxResults){
          this.maxResults = maxResults;
          returnthis;
        }
     
        /** Lists the public activities for the given Google+ user ID. */
        publicstaticPlusUrl listPublicActivities(String userId){
          returnnewPlusUrl(
              "https://www.googleapis.com/plus/v1/people/"+ userId +"/activities/public");
        }
      }
     
      privatestaticvoid parseResponse(HttpResponse response)throwsIOException{
        ActivityFeed feed = response.parseAs(ActivityFeed.class);
        if(feed.getActivities().isEmpty()){
          System.out.println("No activities found.");
        }else{
          if(feed.getActivities().size()== MAX_RESULTS){
            System.out.print("First ");
          }
          System.out.println(feed.getActivities().size()+" activities found:");
          for(Activity activity : feed.getActivities()){
            System.out.println();
            System.out.println("-----------------------------------------------");
            System.out.println("HTML Content: "+ activity.getActivityObject().getContent());
            System.out.println("+1's: "+ activity.getActivityObject().getPlusOners().getTotalItems());
            System.out.println("URL: "+ activity.getUrl());
            System.out.println("ID: "+ activity.get("id"));
          }
        }
      }
     
      privatestaticvoid run()throwsIOException{
        HttpRequestFactory requestFactory =
            HTTP_TRANSPORT.createRequestFactory(newHttpRequestInitializer(){
                @Override
              publicvoid initialize(HttpRequest request){
                request.setParser(newJsonObjectParser(JSON_FACTORY));
              }
            });
        PlusUrl url =PlusUrl.listPublicActivities(USER_ID).setMaxResults(MAX_RESULTS);
        url.put("fields","items(id,url,object(content,plusoners/totalItems))");
        HttpRequest request = requestFactory.buildGetRequest(url);
        parseResponse(request.execute());
      }
     
      publicstaticvoid main(String[] args){
        if(API_KEY.startsWith("Enter ")){
          System.err.println(API_KEY);
          System.exit(1);
        }
        try{
          try{
            run();
            return;
          }catch(HttpResponseException e){
            System.err.println(e.getMessage());
          }
        }catch(Throwable t){
          t.printStackTrace();
        }
        System.exit(1);
      }
    }
  • 相关阅读:
    matrix_2015_1 138
    2014ACM/ICPC亚洲区广州站 北大命题
    无向图的联通分量
    5.1 基础题目选讲
    URAL
    Codeforces Round #274 (Div. 2)
    后缀数组
    poj 1661 help jimmy dp
    hdu 1676 Full Tank? 限制最短路 dp 蛮有技巧的~
    hdu 1023 Train Problem II 双向广搜
  • 原文地址:https://www.cnblogs.com/jianrong-zheng/p/3225269.html
Copyright © 2011-2022 走看看