聚合数据api的使用

前端之家收集整理的这篇文章主要介绍了聚合数据api的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

首先,去注册,并申请要使用的api(严格来讲是数据,但是确实是通过api得到数据),笔者一开始以为还要验证身份证,后来试了下才知道不用,所以步骤就不详细描述,我选择的是天气预报下的天气预报(还有个全国天气2015.07.03)。申请成功后在我的数据里面有操作菜单,下面有”接口“,如图

点开后可以看到数据id和appkey,数据ID和appkey将会作为参数传递

同时,在右上角的”我的聚合“里面有个人信息,可以看到个人的openID,这个是你的唯一的表示,需要在manifest文件里面用到

同时聚合数据提供了开发者的帮助页面http://www.juhe.cn/juhesdk/adocs/v/2,该页面有资源的使用方法和所需要资源的下载地址http://www.juhe.cn/juhesdk/download,选择androidsdk2.6解压后的文件夹里面包含了开发文档和示例,分别提供了android studio端的和eclipse端的,值得注意的是这示例程序不能编译运行,需要你将自己的2个id和一个key修改,并且例子所申请的数据id是查询ip 的,同样需要修改为我们自己所申请的内容

布局文件可以只有一个textview,为了简单方便就选择默认的json数据格式,有兴趣的可以自行查找解析方法,json是有2个包的哦,web访问方式为get因为我们不需要修改,现在就可以上代码

这个是Application的:

  1. package com.example.weather;
  2.  
  3. import android.app.Application;
  4.  
  5. import com.thinkland.sdk.android.JuheSDKInitializer;
  6. public class WeatherApplication extends Application {
  7.  
  8. @Override
  9. public void onCreate() {
  10. // TODO Auto-generated method stub
  11. super.onCreate();
  12. JuheSDKInitializer.initialize(getApplicationContext());//注意:由于版本的差异跟例子不太一样,但跟开发文档一致
  13. }
  14. }

这个是Activity的:

  1. package com.example.weather;
  2.  
  3. import com.thinkland.sdk.android.DataCallBack;
  4. import com.thinkland.sdk.android.JuheData;
  5. import com.thinkland.sdk.android.Parameters;
  6.  
  7. import android.app.Activity;
  8. import android.content.Context;
  9. import android.os.Bundle;
  10. import android.widget.TextView;
  11. import android.widget.Toast;
  12.  
  13. public class MainActivity extends Activity {
  14. private Context myContext;
  15. TextView tv;
  16. @Override
  17. protected void onCreate(Bundle savedInstanceState) {
  18. // TODO Auto-generated method stub
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.activity_main);
  21. tv=(TextView) findViewById(R.id.tv);
  22. myContext=this;
  23. Parameters parameters=new Parameters();
  24. parameters.add("key","你申请的appkey");
  25. parameters.add("cityname","兰州");
  26. //73是我申请的数据ID
  27. JuheData.executeWithAPI(myContext,73,"http://op.juhe.cn/oneBox/weather/query",JuheData.GET,parameters,new DataCallBack() {
  28. @Override
  29. public void onSuccess(int arg0,String arg1) {
  30. // TODO Auto-generated method stub
  31. tv.append(arg1+"\n");
  32. }
  33. @Override
  34. public void onFinish() {
  35. // TODO Auto-generated method stub
  36. Toast.makeText(getApplicationContext(),"finish",Toast.LENGTH_LONG).show();
  37. }
  38. @Override
  39. public void onFailure(int arg0,String arg1,Throwable arg2) {
  40. // TODO Auto-generated method stub
  41. tv.append(arg2.getMessage()+"\n");
  42. }
  43. });
  44. }
  45.  
  46. }


这个是manifest.xml的:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.example.weather"
  4. android:versionCode="1"
  5. android:versionName="1.0" >
  6.  
  7. <uses-sdk
  8. android:minSdkVersion="17"
  9. android:targetSdkVersion="17" />
  10. <!--权限直接粘贴 -->
  11.  
  12. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  13. <uses-permission android:name="android.permission.INTERNET"/>
  14. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  15. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  16. <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
  17. <application
  18. android:allowBackup="true"
  19. android:icon="@drawable/ic_launcher"
  20. android:label="@string/app_name"
  1. <!--配置一个Application-->
  2. android:name="com.example.weather.WeatherApplication"
  3. android:theme="@style/AppTheme" >
  4. <Meta-data
  5. android:name="com.thinkland.juheapi.openid"
  6. android:value="你的openID"/>
  7. <activity
  8. android:name=".MainActivity"
  9. android:label="@string/app_name" >
  10. <intent-filter>
  11. <action android:name="android.intent.action.MAIN" />
  12.  
  13. <category android:name="android.intent.category.LAUNCHER" />
  14. </intent-filter>
  15. </activity>
  16. </application>
  17.  
  18. </manifest>




猜你在找的设计模式相关文章