admin管理员组文章数量:1794759
Android开发中教你如何调用API
调用API
无论什么开发都有可能接触到API的调用 这里我就讲一件Android开发中如何调用
🚀第一步:配置权限android.permission.INTERNET 允许程序打开网络套接字(Allowsapplications to open network sockets)
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/> 🚀第二步:编写工具类(获取网络数据)HttpUtils.java
package com.example.constellation.util; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.HttpURLConnection; import java.MalformedURLException; import java.URL; public class HttpUtils { //获取网络数据 public static String getJSON(String path){ String json=""; try { //将数据转为url对象 URL url= new URL(path); //获取网络连接对象 HttpURLConnection conn=(HttpURLConnection)url.openConnection(); //开始连接 conn.connect(); //读取输入流内容 InputStream is=conn.getInputStream(); //读取流 int hasRead=0; byte[]buf =new byte[1024]; ByteArrayOutputStream bos=new ByteArrayOutputStream(); //循环读取 while (true){ hasRead=is.read(buf); if(hasRead==-1){ break; } bos.write(buf,0,hasRead); } is.close(); json=bos.toString(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return json; } } 🚀第三步:编写接口类(调用api的接口)URLContent.java
package com.example.constellation.util; import java.URLEncoder; public class URLContent { //星座配对接口 public static String getParnterURL(){ String url="接口路径"; return url; } } 🚀第四步:编写AsyncTask<参数类型,进度,返回类型>,获取数据的过程中会弹出加载动画asynctask是Android中的一个自带的轻量级异步类,通过他可以轻松的实现工作线程和UI线程之间的通信和线程切换(其实也只能在工作和ui线程之间切换,稍后会提到)
LoadDataAsyncTask.java 继承AsyncTask
package com.example.constellation.util; import android.app.ProgressDialog; import android.content.Context; import android.os.AsyncTask; public class LoadDataAsyncTask extends AsyncTask<String,Void,String> { Context context; onGetNetDataListener listener; ProgressDialog dialog; boolean flag=false; private void initDialog(){ dialog=new ProgressDialog(context); dialog.setTitle("提示信"); dialog.setMessage("正在加载中...."); } public LoadDataAsyncTask(Context context, onGetNetDataListener listener,boolean flag) { this.context = context; this.listener = listener; this.flag=flag; initDialog(); } //获取网络数据接口 public interface onGetNetDataListener{ public void onSucess(String json); } //运行在子线程中,进行耗时操作等逻辑 @Override protected String doInBackground(String... params) { String json=HttpUtils.getJSON(params[0]); return json; } //运行主线程中,通常用来进行控件的初始化 @Override protected void onPreExecute() { super.onPreExecute(); if(flag){ dialog.show(); } } //运行在主线程中,用来获取doInBackground的返回数据,还可以进行控件更新 @Override protected void onPostExecute(String s) { super.onPostExecute(s); if(flag){ dialog.dismiss(); //返回数据了就要取消提示 } listener.onSucess(s); } } 🚀第五步:加载网络数据 /** * 加载网络数据 */ //创建自定义异步任务对象 LoadDataAsyncTask task=new LoadDataAsyncTask(this,this,true); //执行异步任务 task.execute("api路径"); 🚀第六步:获取返回的信 //得到信后执行此方法 @Override public void onSucess(String json) { //解析数据 if(!TextUtils.isEmpty(json)){ // json即返回的json数据 //可以创建对应的实体类进行接收... } }这样就🆗了,Android开发中调用api的方案之一就完成了 如有需要可以保存此文章,方便Ctrl+C,Ctrl+V😄
版权声明:本文标题:Android开发中教你如何调用API 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686995312a126668.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论