一、简介

二、WebView

public class MainActivity extends AppCompatActivity {    private EditText et_url;    private Button btn_join;    private WebView wv_web;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        et_url = (EditText) findViewById(R.id.et_url);        btn_join = (Button) findViewById(R.id.btn_join);        wv_web = (WebView) findViewById(R.id.wv_web);        //支持js        wv_web.getSettings().setJavaScriptEnabled(true);        // 当跳转到新的网页时,仍然在这个WebView中显示        wv_web.setWebViewClient(new WebViewClient());        wv_web.loadUrl("http://www.baidu.com");                btn_join.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                String urlStr = et_url.getText().toString();                wv_web.loadUrl(urlStr);            }        });    }}

PS:感觉比ios的WebView好使

三、使用HTTP协议访问网络

3.1 HttpURLConnection

package com.example.jony.httpdemo;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.EditText;import android.widget.TextView;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;public class URLConActivity extends AppCompatActivity {    private static final String TAG = "URLConActivity";    private EditText et_url_url;    private Button btn_url_request;    private TextView response_url_text;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_urlcon);        et_url_url = (EditText) findViewById(R.id.et_url_url);        response_url_text = (TextView) findViewById(R.id.response_url_text);        btn_url_request = (Button) findViewById(R.id.btn_url_request);        btn_url_request.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                sendRequestWithHttpURLConnection();            }        });    }    private void sendRequestWithHttpURLConnection(){        //子线程中进行网络数据请求        new Thread(new Runnable() {            @Override            public void run() {                //创建连接对象                HttpURLConnection connection = null;                BufferedReader reader = null;                try {                    URL url = new URL(et_url_url.getText().toString());                    connection = (HttpURLConnection) url.openConnection();                    //get方法                    connection.setRequestMethod("GET");                    //post方法//                    connection.setRequestMethod("POST");//                    DataOutputStream out = new DataOutputStream(connection.getOutputStream());//                    out.writeBytes("userName=admin&password=123456");                    //连接超时和读取超时单位毫秒                    connection.setConnectTimeout(8000);                    connection.setReadTimeout(8000);                    InputStream in = connection.getInputStream();                    reader = new BufferedReader(new InputStreamReader(in));                    StringBuilder response = new StringBuilder();                    String line;                    while ((line = reader.readLine()) != null){                        response.append(line);                    }                    showResponse(response.toString());                } 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){        //将线程切换到主线程更新UI        runOnUiThread(new Runnable() {            @Override            public void run() {//                Log.d(TAG, "run:"+response);                response_url_text.setText(response);            }        });    }}

3.2 OKHttp

package com.example.jony.httpdemo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import java.io.IOException;import okhttp3.FormBody;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.RequestBody;import okhttp3.Response;public class OKHttpActivity extends AppCompatActivity {    private EditText et_ok_url;    private Button btn_ok_request;    private TextView response_ok_text;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_okhttp);        et_ok_url = (EditText) findViewById(R.id.et_ok_url);        btn_ok_request = (Button) findViewById(R.id.btn_ok_request);        response_ok_text = (TextView) findViewById(R.id.response_ok_text);        btn_ok_request.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                sendRequestWithOKHttp();            }        });    }    private void sendRequestWithOKHttp(){        new Thread(new Runnable() {            @Override            public void run() {                OkHttpClient client = new OkHttpClient();                //                //Post请求//                RequestBody requestBody = new FormBody.Builder()//                        .add("username","admin")//                        .add("password", "123456")//                        .build();//                Request request = new Request().Builder()//                        .url("http://www.baidu.com")//                        .post(requestBody)//                        .build();                                Request request = new Request.Builder().url(et_ok_url.getText().toString()).build();                try {                    //创建call对象,并execute()方法发送请求获取返回数据                    Response response = client.newCall(request).execute();                    String responseData = response.body().string();                    showResponse(responseData);                } catch (IOException e) {                    e.printStackTrace();                }            }        }).start();    }    private void showResponse(final String response){        runOnUiThread(new Runnable() {            @Override            public void run() {                response_ok_text.setText(response);            }        });    }}

更多相关文章

  1. Android学习笔记(2)————Android四大组件之二(Service )
  2. Android学习笔记(1)————Android四大组件之一(Activity)
  3. Android(安卓)Parcelable接口使用方法详解
  4. Adb连接超时错误
  5. Keyguard之LockPatternView学习
  6. 编译android源码前的准备
  7. Android(安卓)Camera CTS related
  8. android、webService 天气预报demo
  9. Android.Bundle savedInstanceState 的意义用法

随机推荐

  1. android九种对话框
  2. Android(安卓)Handler 教程
  3. Android(安卓)9.0——ActivityManagerSer
  4. make_ext4fs 文件权限控制
  5. AppWidget运用实例
  6. Android(安卓)Intent 机制学习
  7. Android(安卓)Lollipop 设置状态栏颜色
  8. Android7.1 Presentation双屏异显 DEMO
  9. android studio使用database navigator查
  10. Anroid的onCreateOptionsMenu()创建菜单M