Android 网络技术--OkHttp
2018-12-26 本文已影响0人
霖风_
- 手机端使用HTTP协议和服务器端进行网路交互,并对服务器返回的数据进行解析
- webView的用法
WebView webView = findViewById(R.id.web_view);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://www.baidu.com");
-
使用http协议访问网络:手机端向服务器端发送请求,服务器端返回数据,手机端在进行对数据的解析得到预期数据
-
通过使用OkHttp第三方库来连接网络,具体步骤如下:
- 在(app)build.gradle中添加OkHttp依赖
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
但是一直失败,没有添加成功
参考 https://www.jianshu.com/p/62130ee2dcf1
使用lardern就能够解决。
-
在AndroidMainFfest.xml中允许网络连接
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
-
注意只有在主线程中才能够进行UI操作,否则无法显示
private void showResponse(final String Data1) {
runOnUiThread(new Runnable() {
@Override
public void run() {
//在这里进行UI操作
responseText.setText(Data1);
}
});
}
- json的解析 ,通过Okhttp来获取或者接收服务器的json形式的信息,通过GSON 来解析。
private void sendRequestWithOkHttp() {
new Thread(new Runnable() {
@Override
public void run() {
try{
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https://www.baidu.com/").build();
Response response = client.newCall(request).execute();
String responseData = response.body().string();
showResponse(responseData);
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
private void showResponse(final String responseData) {
runOnUiThread(new Runnable() {
@Override
public void run() {
//在这里进行UI操作
responseText.setText(responseData);
}
});
}
image.png
根据书上的教程成功拉去
parseJSONWithGSON(responseData);//这个没有显示出来,出现问题
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
private void parseJSONWithGSON(final String Data) {
runOnUiThread(new Runnable() {
@Override
public void run() {
//在这里进行UI操作
Toast.makeText(MainActivity.this,"id is ",Toast.LENGTH_SHORT).show();
Gson gson = new Gson();
List<city> cities = gson.fromJson(Data,new TypeToken<List<city>>(){}.getType());
for (city city:cities){
// Log.d("MainActivity","id is "+city.getId());
// Toast.makeText(MainActivity.this,"id is "+city.getId(),Toast.LENGTH_SHORT).show();
}
}
});
对数据进行解析。
https://blog.csdn.net/huplion/article/details/78984977
通过该网页可以初步了解GSON解析复杂JSON数据的具体步骤
下一步看如何保存到表格中,需要重新建立一个项目存储表格。