- 建立httpfun類
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL4lkaOJzaU10MNpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3EzN2MDOwAjMzATMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
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");