- 新建httpfun类
2.新建一个receive接口
3.接口内代码
package com.example.httpurlconnectionfun;
public interface Receive {
void onFinish(String data);
void onError(Exception e);
}
4.httpfun类内代码
public class HttpFun {
public static void sendHttp(final String address,final Receive fun,final String type,final String data){
//address为请求地址
//fun为请求后执行实例
//type为请求方式
//data为请求数据
//开始子线程处理post请求
new Thread(new Runnable() {
@Override
public void run() {
HttpURLConnection connection=null;
BufferedReader reader=null;
URL url;
try {
if(type=="GET"){
url=new URL(address+"?"+data);
}else{
url=new URL(address);
}
connection=(HttpURLConnection) url.openConnection();
connection.setRequestMethod(type);
if(type=="POST"){
DataOutputStream data1=new DataOutputStream(connection.getOutputStream());
data1.writeBytes("name=小明&password=123456&token=123");
}
connection.setReadTimeout(8000);
connection.setConnectTimeout(8000);
InputStream inputStream=connection.getInputStream();//获取服务器返回输入流
reader=new BufferedReader(new InputStreamReader(inputStream));
StringBuilder response=new StringBuilder();
String line;
while ((line=reader.readLine())!=null){
response.append(line);
}
if (fun!=null){
fun.onFinish(response.toString()
);
}
}catch (Exception e){
e.printStackTrace();
if(fun!=null){
fun.onError(e);
}
}finally {
if(connection!=null){
//关闭连接
connection.disconnect();
}
}
}
}).start();
}
}
5.使用方法
HttpFun.sendHttp("http://www.baidu.com", new Receive() {
@Override
public void onFinish(String data) {
Log.d("finish",data);
}
@Override
public void onError(Exception e) {
e.printStackTrace();
Log.d("finish","111");
}
},"GET","name=1");