java post类_【Java】HttpPost 类
packagecom.example.jtuzi.myapplication;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.support.v7.app.AlertDialog;importjava.io.ByteArrayOutputStream;importjava
packagecom.example.jtuzi.myapplication;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.support.v7.app.AlertDialog;importjava.io.ByteArrayOutputStream;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.HttpURLConnection;importjava.net.URL;public class HttpPost extendsThread {private String connStr; //连接字符串
private String method; //方法名
private String data; //发送的数据
private Message response; //返回的数据
HttpPost11(String connStr, String method, String data, Message response) {this.connStr =connStr;this.method =method;this.data =data;this.response =response;
}public voidrun() {if (connStr == null || connStr.equals("") || data == null)return;try{byte b[] = data.getBytes("utf-8");
URL url;if (method != null)
url= new URL(connStr + "/" +method);elseurl= newURL(connStr);//设置参数
HttpURLConnection con =(HttpURLConnection) url.openConnection();
con.setConnectTimeout(5000);
con.setUseCaches(false);
con.setDoOutput(true);
con.setDoInput(true);
con.setRequestMethod("POST");//设置header
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");//写入数据
OutputStream os =con.getOutputStream();
os.write(b);
os.flush();
os.close();if (response == null)return;//处理返回的结果/** message.what是请求码,若请求码不是200,则返回
* 若请求码是200,请求成功,则封装数据。有方法名时数据key值为方法名,否则key值为"data"
* 若出现异常,则数据key值为"error",value为异常详细信息*/response.what=con.getResponseCode();if (response.what ==HttpURLConnection.HTTP_OK) {//向bos写入返回的数据
ByteArrayOutputStream bos = newByteArrayOutputStream();byte buffer[] = new byte[1024];
InputStream is=con.getInputStream();int count = -1;while ((count = is.read(buffer, 0, buffer.length)) != -1)
bos.write(buffer,0, count);
is.close();//封装数据
Bundle bd = newBundle();if (method != null)
bd.putString(method, bos.toString("utf-8"));elsebd.putString("data", bos.toString("utf-8"));
response.setData(bd);
}
con.disconnect();
System.out.println("准备输出结果");
response.sendToTarget();
Handler
}catch(Exception e) {//TODO Auto-generated catch block
e.printStackTrace();//处理异常
if (response == null)return;
Bundle bd= newBundle();
bd.putString("error", e.getMessage());
response.setData(bd);
response.sendToTarget();
}
}
}
更多推荐
所有评论(0)