要连接到 RESTful API,您必须执行以下步骤
- 提供互联网访问权限
- 必须做http连接
- 必须接受流输入
提供互联网访问权限
为了让应用程序能够访问互联网,我们必须在文件“AndroidManifest.xml”中添加这段代码
<uses-permission android:name="android.permission.INTERNET"/>
要执行第二和第三步骤,我们必须创建一个新的java类,因为当我们连接到restful API时,它将在后台和MainActivity中运行不允许后台任务。
假设我们创建了一个新的 java 类“fetchData”来从 API 获取数据。
为了完成剩下的任务,我们必须使用这段代码
URL url = new URL(API ADDRESS);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
现在您使用“Bufferedreader.readLine()”获取 JSON 文件
那么类文件是这样的
import android.os.AsyncTask;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class fetchData extends AsyncTask<Void,Void,Void> {
String data ="";
String dataParsed = "";
String singleParsed ="";
@Override
protected Void doInBackground(Void... voids) {
try {
URL url = new URL("https://api.myjson.com/bins/k3p10");
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line = "";
while(line != null){
line = bufferedReader.readLine();
data = data + line;
}
JSONArray JA = new JSONArray(data);
for(int i =0 ;i <JA.length(); i++){
JSONObject JO = (JSONObject) JA.get(i);
singleParsed = "Name:" + JO.get("name") + "\n"+
"email:" + JO.get("email") + "\n"+
"Error:" + JO.get("error") + "\n";
dataParsed = dataParsed + singleParsed +"\n" ;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
}
}
从 JSON 数组中,您可以从从 API 获得的 JSON 中提取所有内容。那么您可以根据您的要求使用这些信息。