Android自定义网络连接工具类HttpUtil
本文实例为大家分享了Android网络连接工具类HttpUtil的使用方法,供大家参考,具体内容如下
该工具实现了发送get和post请求,请求的结果以String字符串的形式返回,比较适合接收服务器端发送过来的JSON字符串数据
get方法适合从服务器端获取数据
post方法适合发送数据到服务器端
使用的时候直接调用get或post方法就好
get方法传递一个url请求
post方法传递一个url请求和要发送到服务器端的数据params
接收数据后返回的是一个String字符串
HttpUtil.java
publicclassHttpUtil{
/**
*POST方法提交HTTP请求,返回请求的结果
*
*@paramurl
*@paramparams
*@return请求结果
*@throwsIOException
*/
publicstaticStringsendPost(Stringurl,Stringparams)throwsIOException{
StringBufferresult=newStringBuffer();
//创建URL对象
URL_url=newURL(url);
//创建HTTP连接
/**
*使用.openConnection()方法实例化一个URLConnection对象
**/
HttpURLConnectionconn=(HttpURLConnection)_url.openConnection();
//以下设置网络连接的相关参数
/*使用POST方法进行请求传递时,必须定义setDoInput和setDoOutput方法*/
//设置输入可用
conn.setDoInput(true);
//设置输出可用
conn.setDoOutput(true);
//设置不使用缓存
conn.setUseCaches(false);
//设置连接超时的时间-5s
conn.setConnectTimeout(5000);
//设置读取超时的时间-5s
conn.setReadTimeout(5000);
//设置HTTP请求的方法-POST
conn.setRequestMethod("POST");
//设置HTTP请求属性-连接方式:保持
conn.setRequestProperty("Connection","Keep-Alive");
//设置HTTP请求属性-字符集:UTF-8
conn.setRequestProperty("Charset","UTF-8");
//设置HTTP请求属性-传输内容的类型-简单表单
conn.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
//设置HTTP请求属性-传输内容的长度
conn.setRequestProperty("Content-Length",
String.valueOf(params.length()));
//设置HTTP请求属性-用户代理
conn.setRequestProperty("User-Agent",
"Mozilla/5.0(WindowsNT6.3;WOW64;rv:27.0)Gecko/20100101Firefox/27.0");
//发送参数,采用字符流发送数据
PrintWriterpw=newPrintWriter(conn.getOutputStream());
pw.write(params);
pw.flush();
pw.close();
//获取返回的结果
if(200==conn.getResponseCode()){//判断状态码
//读取服务器返回的结果-字符流
BufferedReaderbr=newBufferedReader(newInputStreamReader(
conn.getInputStream()));
//每次读取一行
Stringline;
while((line=br.readLine())!=null){
result.append(line);
}
}
//关闭HTTP连接
conn.disconnect();
returnresult.toString();
}
/**
*GET方法提交HTTP请求,返回请求的结果
*@paramurl
*@return请求的结果
*@throwsIOException
*/
publicstaticStringsendGet(Stringurl)throwsIOException{
StringBufferresult=newStringBuffer();
//创建URL对象
URL_url=newURL(url);
//创建HTTP连接
HttpURLConnectionconn=(HttpURLConnection)_url.openConnection();
//设置网络连接的相关参数
//设置输入可用
conn.setDoInput(true);
//设置输出可用
conn.setDoOutput(true);
//设置不使用缓存
conn.setUseCaches(false);
//设置连接超时的时间-5s
conn.setConnectTimeout(5000);
//设置读取超时的时间-5s
conn.setReadTimeout(5000);
//设置HTTP请求的方法-GET
conn.setRequestMethod("GET");
//设置HTTP请求属性-连接方式:保持
conn.setRequestProperty("Connection","Keep-Alive");
//设置HTTP请求属性-字符集:UTF-8
conn.setRequestProperty("Charset","UTF-8");
//设置HTTP请求属性-用户代理
conn.setRequestProperty("User-Agent",
"Mozilla/5.0(WindowsNT6.3;WOW64;rv:27.0)Gecko/20100101Firefox/27.0");
//获取返回的结果
if(200==conn.getResponseCode()){//判断状态码
BufferedReaderbr=newBufferedReader(newInputStreamReader(
conn.getInputStream()));
//每次读取一行
Stringline;
while((line=br.readLine())!=null){
result.append(line);
}
}
//关闭HTTP连接
conn.disconnect();
returnresult.toString();
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。