1 使用httpURLConnection 的实例
URL URL= new URL("http://www.baidu.com");
HttpURLConnection conn =(HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET")
conn.setRequestMethod("POST")
conn.setConnectTimeout(8000)
conn.setReadTimeout(6000)
调用 getInputStream()方法获取服务器服务的输入流
InputStream in = conn.getInputStream()
关闭http连接
conn.close()
webview的基本使用
mainfest.xml 允许使用网络
<uses-permission android:name="android.permission.INTERNET"/>
//获取webView控件的实例
webView = findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
webView.loadUrl("http:www.baidu.com");
最基本的网络请求
package com.yifei.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class MainActivity extends AppCompatActivity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建子线程
new Thread(new Runnable() {
@Override
public void run() {
requestData();
}
}).start();
}
private void requestData() {
try {
URL url = new URL("https://www.ietf.org/rfc/rfc2616.txt");
//获取到httpUrlConnection的实例
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//指定请求方式
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(10000);
urlConnection.setReadTimeout(10000);
InputStream in = urlConnection.getInputStream();
String result = streamToString(in);
Log.d("MainActivity12", "onCreate: "+result);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public String streamToString(InputStream is) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = is.read(buffer)) != -1) {
baos.write(buffer, 0, len);
}
baos.close();
is.close();
byte[] byteArray = baos.toByteArray();
return new String(byteArray);
} catch (Exception e) {
Log.e("MainActivity12", e.toString());
return null;
}
}
}
利用handle更新ui
package com.yifei.myapplication;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class MainActivity extends AppCompatActivity {
private TextView textView;
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 1001:
String data= (String) msg.obj;
textView.setText(data);
break;
default:
return;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView= findViewById(R.id.text);
//创建子线程
new Thread(new Runnable() {
@Override
public void run() {
requestData();
}
}).start();
}
private void requestData() {
try {
URL url = new URL("https://www.ietf.org/rfc/rfc2616.txt");
//获取到httpUrlConnection的实例
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//指定请求方式
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(10000);
urlConnection.setReadTimeout(10000);
InputStream in = urlConnection.getInputStream();
String result = streamToString(in);
Log.d("MainActivity12", "onCreate: "+result);
Message message = new Message();
message.what=1001;
message.obj= result;
handler.sendMessage(message);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public String streamToString(InputStream is) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = is.read(buffer)) != -1) {
baos.write(buffer, 0, len);
}
baos.close();
is.close();
byte[] byteArray = baos.toByteArray();
return new String(byteArray);
} catch (Exception e) {
Log.e("MainActivity12", e.toString());
return null;
}
}
}