/**
* 封装HTTP POST信息的发送方法并返回JSON数据
* @author acer
*
*/
public class HttpPostUtil
{
private static String[] sessionId = null;
// 请求服务器端的URL
public static String PATH = "http://192.168.253.3/Order/Main/";
public static String IMAGE_PATH = PATH + "Image.php";
/**
* @param params
* 填写的URL的参数
* @param encode
* 字节编码
*
* @return
*/
public static String sendPostMesssage(Map<String, String> params,
String encode, String url_path)
{
URL url;
//作为StringBuffer初始化的字符串
StringBuffer buffer = new StringBuffer();
try
{
url = new URL(url_path);
if(params != null && !params.isEmpty())
{
for(Map.Entry<String, String> entry: params.entrySet())
{
//完成转码操作
buffer.append(entry.getKey())
.append("=")
.append(URLEncoder.encode(entry.getValue(), encode))
.append("&");
}
//删除最右一个&
buffer.deleteCharAt(buffer.length() - 1);
}
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(3000);
urlConnection.setRequestMethod("POST");
//表示从服务器获取数据
urlConnection.setDoInput(true);
//表示向服务器写数据
urlConnection.setDoOutput(true);
if(sessionId[0] != null)
{
urlConnection.setRequestProperty("cookie", sessionId[0]);
}
//获得上传信息的字节大小及长度
byte[] mydata = buffer.toString().getBytes();
//表示设置请求体的类型是文本类型
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencode");
urlConnection.setRequestProperty("Content-Length", String.valueOf(mydata.length));
//获得输出流,向服务器输出数据
OutputStream outputStream = urlConnection.getOutputStream();
outputStream.write(mydata, 0, mydata.length);
outputStream.close();
//获得服务器响应的结果和状态码
int responseCode = urlConnection.getResponseCode();
if(responseCode == 200)
{
return changeInputStream(urlConnection.getInputStream(), encode);
}
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
catch (ProtocolException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return "";
}
/**
* 将一个输入流转换成指定编码的字符串
*
* @param inputStream
* @param encode
* @return
*/
private static String changeInputStream(InputStream inputStream, String encode)
{
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] data = new byte[1024];
int len = 0;
String result = "";
if(inputStream != null)
{
try
{
while((len = inputStream.read(data)) != -1)
{
outputStream.write(data, 0, len);
}
result = new String(outputStream.toByteArray(), encode);
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
return result;
}
/**
* 获取网络图片资源
* @param url
* @return Bitmap
*/
public static Bitmap getHttpBitmap(String url)
{
URL myFileURL;
Bitmap bitmap = null;
try
{
myFileURL = new URL(url);
//获得连接
HttpURLConnection conn = (HttpURLConnection) myFileURL.openConnection();
//设置超时时间为6000毫秒,conn.setConnectionTimeout(0);表示没有时间限制
conn.setConnectTimeout(6000);
//连接设置获得数据流
conn.setDoInput(true);
//记住session
String session_value = conn.getHeaderField("Set-Cookie");
sessionId = session_value.split(";");
conn.connect();
//得到数据流
InputStream is = conn.getInputStream();
//解析得到图片
bitmap = BitmapFactory.decodeStream(is);
//关闭数据流
is.close();
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
// TODO 自动生成的 catch 块
}
return bitmap;
}
}
* 封装HTTP POST信息的发送方法并返回JSON数据
* @author acer
*
*/
public class HttpPostUtil
{
private static String[] sessionId = null;
// 请求服务器端的URL
public static String PATH = "http://192.168.253.3/Order/Main/";
public static String IMAGE_PATH = PATH + "Image.php";
/**
* @param params
* 填写的URL的参数
* @param encode
* 字节编码
*
* @return
*/
public static String sendPostMesssage(Map<String, String> params,
String encode, String url_path)
{
URL url;
//作为StringBuffer初始化的字符串
StringBuffer buffer = new StringBuffer();
try
{
url = new URL(url_path);
if(params != null && !params.isEmpty())
{
for(Map.Entry<String, String> entry: params.entrySet())
{
//完成转码操作
buffer.append(entry.getKey())
.append("=")
.append(URLEncoder.encode(entry.getValue(), encode))
.append("&");
}
//删除最右一个&
buffer.deleteCharAt(buffer.length() - 1);
}
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(3000);
urlConnection.setRequestMethod("POST");
//表示从服务器获取数据
urlConnection.setDoInput(true);
//表示向服务器写数据
urlConnection.setDoOutput(true);
if(sessionId[0] != null)
{
urlConnection.setRequestProperty("cookie", sessionId[0]);
}
//获得上传信息的字节大小及长度
byte[] mydata = buffer.toString().getBytes();
//表示设置请求体的类型是文本类型
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencode");
urlConnection.setRequestProperty("Content-Length", String.valueOf(mydata.length));
//获得输出流,向服务器输出数据
OutputStream outputStream = urlConnection.getOutputStream();
outputStream.write(mydata, 0, mydata.length);
outputStream.close();
//获得服务器响应的结果和状态码
int responseCode = urlConnection.getResponseCode();
if(responseCode == 200)
{
return changeInputStream(urlConnection.getInputStream(), encode);
}
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
catch (ProtocolException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return "";
}
/**
* 将一个输入流转换成指定编码的字符串
*
* @param inputStream
* @param encode
* @return
*/
private static String changeInputStream(InputStream inputStream, String encode)
{
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] data = new byte[1024];
int len = 0;
String result = "";
if(inputStream != null)
{
try
{
while((len = inputStream.read(data)) != -1)
{
outputStream.write(data, 0, len);
}
result = new String(outputStream.toByteArray(), encode);
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
return result;
}
/**
* 获取网络图片资源
* @param url
* @return Bitmap
*/
public static Bitmap getHttpBitmap(String url)
{
URL myFileURL;
Bitmap bitmap = null;
try
{
myFileURL = new URL(url);
//获得连接
HttpURLConnection conn = (HttpURLConnection) myFileURL.openConnection();
//设置超时时间为6000毫秒,conn.setConnectionTimeout(0);表示没有时间限制
conn.setConnectTimeout(6000);
//连接设置获得数据流
conn.setDoInput(true);
//记住session
String session_value = conn.getHeaderField("Set-Cookie");
sessionId = session_value.split(";");
conn.connect();
//得到数据流
InputStream is = conn.getInputStream();
//解析得到图片
bitmap = BitmapFactory.decodeStream(is);
//关闭数据流
is.close();
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
// TODO 自动生成的 catch 块
}
return bitmap;
}
}