1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android开发中教你如何调用API

Android开发中教你如何调用API

时间:2021-10-13 11:34:16

相关推荐

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 .HttpURLConnection;import .MalformedURLException;import .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 .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);}//运行在子线程中,进行耗时操作等逻辑@Overrideprotected String doInBackground(String... params) {String json=HttpUtils.getJSON(params[0]);return json;}//运行主线程中,通常用来进行控件的初始化@Overrideprotected void onPreExecute() {super.onPreExecute();if(flag){dialog.show();}}//运行在主线程中,用来获取doInBackground的返回数据,还可以进行控件更新@Overrideprotected void onPostExecute(String s) {super.onPostExecute(s);if(flag){dialog.dismiss(); //返回数据了就要取消提示}listener.onSucess(s);}}

🚀第五步:加载网络数据

/*** 加载网络数据*///创建自定义异步任务对象LoadDataAsyncTask task=new LoadDataAsyncTask(this,this,true);//执行异步任务task.execute("api路径");

🚀第六步:获取返回的信息

//得到信息后执行此方法@Overridepublic void onSucess(String json) {//解析数据if(!TextUtils.isEmpty(json)){// json即返回的json数据//可以创建对应的实体类进行接收...}}

这样就🆗了,Android开发中调用api的方案之一就完成了

如有需要可以保存此文章,方便Ctrl+C,Ctrl+V😄

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。