版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1.申请网络权限
<!-- 获取网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
2.添加依赖
implementation 'com.squareup.okhttp3:okhttp:3.4.1'
3.activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn"
android:text="访问服务器"
/>
</LinearLayout>
4.MainActivity.java
package com.example.a86156.joinweb;
import android.os.Looper;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class MainActivity extends AppCompatActivity {
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//访问服务器
sendRequestWithokHttp();
}
});
}
/**
* 访问服务器的方法1
*/
private void sendRequestWithokHttp() {
//开启线程发起网络请求
new Thread(new Runnable() {
@Override
public void run() {
try {
//创建一个OkHttpClient对象
OkHttpClient client = new OkHttpClient();
//创建一个Request用来发送请求
Request request = new Request.Builder()
//请求的目标地址
.url("http://www.baidu.com")
.build();
//调用okHttpClient的newCall方法创建䘝Call对象,
//并调用它的execute方法发送请求并获取服务器返回的数据
Response response = client.newCall(request).execute();
String responseData = response.body().string();
//调用该方法解析从服务器返回的Json数据
parseJSONobject(responseData);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
/**
* 解析从服务器返回的Json格式数控
*
* @param jsonData 将要解析的数据
*/
private void parseJSONobject(String jsonData) {
try {
JSONObject jsonObject = new JSONObject(jsonData);
JSONArray jr = new JSONArray(jsonObject.getString("table"));
for (int i = 0; i < jr.length(); i++) {
JSONObject object = new JSONObject(jr.get(i).toString());
//s1.s2.s3 为解析后得到的结果(例子)
String s1 = object.getString("s1");
String s2 = object.getString("s2");
String s3 = object.getString("s3");
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}