/**
* Http get 请求
*
* @param urlPath
*
*
*/
private static String httpConnByGet(RequestUrl ru,Params params){
String token = (String) params.getMap().get("token") ;
String et = (String) params.getMap().get("et") ;
params.getMap().remove("et");
if(token != null ){
params.getMap().put("token",Md5.md5(token + et + params.getMap().get("uid") + ru.getKeywords()));
}
String urlPath = ru.getUrl() + HttpURLConstant.QMARK + HttpURLConstant.COMMON_PARAMS + et + params.toString() ; //通用参数的设置
Log.w("NETURL","geturl:"+urlPath);
URL url = null;
HttpURLConnection urlConnection = null;
try {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[2048]; //应该不会小吧!
int len = 0;
url = new URL(urlPath);
urlConnection = (HttpURLConnection) url.openConnection();
// Class> clazz=url.openConnection().getClass(); //看看返回什么鬼类型
// Class> clazzSuper=clazz.getSuperclass(); //父类又是什么鬼啊!
//getInputStream暗中执行了连接,不需要urlConnection.connect();
urlConnection.setReadTimeout(readTimeout); // 设置请求的超时时间
urlConnection.setConnectTimeout(connectTimeout);
if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
InputStream inStream = urlConnection.getInputStream(); //获取输入流,此时才真正建立链接
while ((len = inStream.read(data)) != -1) {
outStream.write(data, 0, len);
}
inStream.close();
if(isDebug){Log.e(TAG,"get 返回数据"+new String(outStream.toByteArray()));}
return new String(outStream.toByteArray());
}else{ //返回的是HTTP的错误码,不是我们自己定义的错误码!
//处理一下http的错误返回码
Log.e(TAG,"get 网络连接失败"+urlConnection.getResponseCode());
return "HTTP_ERROR-"+urlConnection.getResponseCode();
}
} catch (MalformedURLException e) {
e.printStackTrace();
Log.e(TAG,"MalformedURLException e");
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG,"IOException e");
} finally{
if(urlConnection!=null){
urlConnection.disconnect(); //总是需要关闭的吧!
}
}
return null;
}
/**
* Http Post 请求
*
* @param urlpath
* @param paramsDatas
*/
private static String httpConnByPost(RequestUrl ru,Params params) {
String token = (String) params.getMap().get("token") ;
String et = (String) params.getMap().get("et") ;
params.getMap().remove("et");
if(token != null ){
params.getMap().put("token", Md5.md5(token + et + params.getMap().get("uid") + ru.getKeywords()));
}
URL url = null; // 根据地址创建URL对象
HttpURLConnection urlConnection = null; // 根据URL对象打开链接
try {
url = new URL(ru.getUrl()); // 根据地址创建URL对象
urlConnection = (HttpURLConnection) url.openConnection(); // 根据URL对象打开链接
urlConnection.setRequestMethod("POST"); // 设置请求的方式
urlConnection.setReadTimeout(readTimeout); // 设置请求的超时时间
urlConnection.setConnectTimeout(connectTimeout);
String paramsData = HttpURLConstant.COMMON_PARAMS + et + params.toString(); //通用参数的使用要注意
Log.w("NETURL",url+"?"+paramsData);
urlConnection.setRequestProperty("Connection", "keep-alive"); // 设置维持长连接
urlConnection.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); // 设置文件的类型
urlConnection.setRequestProperty("Content-Length",String.valueOf(paramsData.getBytes().length)); // 设置数据的长度
urlConnection.setRequestProperty("User-Agent","Devond_Watch,Android-device."); // ???
urlConnection.setDoOutput(true); // 发送POST请求必须设置允许输出
urlConnection.setDoInput(true); // 发送POST请求必须设置允许输入,setDoInput的默认值就是true
urlConnection.setUseCaches(false); // 为安全,不允许使用缓存
urlConnection.connect(); //urlConnection.getInputStream()的时候会自动的打开连接的
OutputStream os = urlConnection.getOutputStream(); //获取输出流developer
os.write(paramsData.getBytes());
os.flush();
if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
InputStream is = urlConnection.getInputStream(); // 获取响应的输入流对象
ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 创建字节输出流对象
int len = 0; // 定义读取的长度
byte buffer[] = new byte[2048]; // 定义缓冲区
while ((len = is.read(buffer)) != -1) { // 按照缓冲区的大小,循环读取
baos.write(buffer, 0, len); // 根据读取的长度写入到os对象中
}
is.close();// 释放资源
baos.close();
final String result = new String(baos.toByteArray());
if(isDebug){
Log.e(TAG,"Post返回的数据:"+result);
}
return new String(baos.toByteArray());
}else{ //返回的是HTTP的错误码,不是我们自己定义的错误码!
//处理一下http的错误返回码
Log.e(TAG,urlConnection.getResponseCode()+"#Post 网络连接失败#"+urlConnection.getErrorStream());
return "HTTP_ERROR-"+urlConnection.getResponseCode();
}
} catch (MalformedURLException e) {
e.printStackTrace();
Log.e(TAG,"MalformedURLException e");
}catch (Exception e) {
e.printStackTrace();
}finally{
if(urlConnection!=null){
urlConnection.disconnect();
}
}
Log.e(TAG,"Post 请求返回为空");
return null;
}