public class HttpUtil {
//公共类中提供静态方法
public static void sendHttpRequest(final String address, final HttpCallBackListener listener) {
new Thread(new Runnable() {
@Override
public void run() {
HttpURLConnection connection = null;
try {
URL url = new URL(address);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(8000);
connection.setReadTimeout(8000);
connection.setDoInput(true);
connection.setDoOutput(true);
InputStream in = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder request = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
request.append(line);
}
if (listener != null) {
//回调onFinish()方法
listener.onFinish(request.toString());
}
} catch (IOException e) {
e.printStackTrace();
if(listener!=null){
//回调onError()方法
listener.onError(e);
}
} finally {
if (connection != null)
connection.disconnect();
}
}
}).start();
}
//自定义接口
public interface HttpCallBackListener {
void onFinish(String address);//服务器成功响应请求时调用
void onError(Exception e);//网络操作错误时调用
}
}
HttpRULConnection:
connection.setRequestMethod("GET");
查阅api
setRequestMethod 获取请求方法
public void setRequestMethod(String method)
throws ProtocolException
设置 URL 请求的方法,
GET
POST
HEAD
OPTIONS
PUT
DELETE
TRACE
以上方法之一是合法的,具体取决于协议的限制。默认方法为 GET。
setDoOutput
public void setDoOutput(boolean dooutput)
将此 URLConnection 的 doOutput 字段的值设置为指定的值。
URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输出,则将 DoOutput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 false。
setDoInput
public void setDoInput(boolean doinput)
将此 URLConnection 的 doInput 字段的值设置为指定的值。
URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 true。
Reader –>String
BufferedReader reader= new BufferedReader(new InputStreamReader(in));
StringBuffer request= new StringBuffer();
String line = " ";
while ((line = reader.readLine()) != null){
request.append(line);
}
return request.toString();
//自定义接口
public interface HttpCallBackListener {
void onFinish(String address);//服务器成功响应请求时调用
void onError(Exception e);//网络操作错误时调用
}
URL url = new URL(address);onFinish()方法中参数代表服务器返回的数据
onError()方法中参数记录着错误的详细信息