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);
      }
    }
  • 相关阅读:
    轻量级数据库sqlite的使用
    Integer引发的思考
    css限制显示行数
    数据库 chapter 17 数据仓库与联机分析处理技术
    数据库 chapter 15 对象关系数据库系统
    数据库 chapter 16 XML数据库
    数据库 chapter 14 分布式数据库系统
    数据库 chapter 11 并发控制
    数据库 chapter 12 数据库管理系统
    数据库 chapter 13 数据库技术新发展
  • 原文地址:https://www.cnblogs.com/jianrong-zheng/p/3225269.html
Copyright © 2011-2022 走看看