• 安卓通过OkHttp获取json数据


    使用Http协议访问网络

    OkHttp使用

    可以很好的获取接口数据!json数据!

    支持get和post提交方式!!!

    1.引入模块

    compile 'com.squareup.okhttp3:okhttp:3.4.1'
    

    然后系统会自动引入模块

    2.设置权限

    <uses-permission android:name="android.permission.INTERNET" />
    

    支持上网

    3.布局

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
    
        <Button
            android:id="@+id/send_request"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Send Request"
            />
    
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            >
            <TextView
                android:id="@+id/response_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                />
        </ScrollView>
    
    </LinearLayout>
    
    

    4.实现功能

    点击按钮,获取接口数据并展示

    package demo.jq.com.networktest;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    import java.io.BufferedReader;
    import java.io.EOFException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    import okhttp3.FormBody;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.RequestBody;
    import okhttp3.Response;
    
    /**
     * @author jim
     */
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    
        TextView responseText;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Button sendRequest = (Button) findViewById(R.id.send_request);
            responseText = (TextView) findViewById(R.id.response_text);
            sendRequest.setOnClickListener(this);
    
        }
    
        @Override
        public void onClick(View v) {
            if (v.getId() == R.id.send_request) {
                sendRequestWithOkHttp();
            }
        }
    
        private void sendRequestWithOkHttp() {
            // 开启线程来发起网络请求
            new Thread(new Runnable() {
                @Override
                public void run() {
                    HttpURLConnection connection = null;
                    BufferedReader reader = null;
                    try {
                        OkHttpClient client = new OkHttpClient();
    
    
                        // post请求
                        RequestBody requestBody = new FormBody.Builder()
                                .add("type","1")
                                .build();
    
    
                        Request request = new Request.Builder()
                                .url("http://devmg.yunlutong.com/api/test/testApi")
                                .post(requestBody)
                                .build();
    
                        Response response = client.newCall(request).execute();
                        String responseData = response.body().string();
                        showResponse(responseData);
                    } catch (Exception e) {
                        e.printStackTrace();
                    } finally {
                        if (reader != null) {
                            try {
                                reader.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
    
                        if (connection != null) {
                            connection.disconnect();
                        }
                    }
                }
            }).start();
        }
    
        private void showResponse(final String response) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    responseText.setText(response);
                }
            });
    
        }
    }
    
    

  • 相关阅读:
    Merge Intervals
    Jump Game
    微信小程序----button组件
    微信小程序----日期时间选择器(自定义精确到分秒或时段)(MUI日期时间)
    禁止搜索引擎抓取robots.txt文件设置方法
    [转载]【转】代码的版权声明怎么写
    微信小程序----picker选择器(picker、省市区选择器)(MUI选择器)
    微信小程序----模板(template)
    nginx安全配置
    微信小程序----icon组件
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/7705446.html
Copyright © 2020-2023  润新知