packagecn.com.util;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileOutputStream;importjava.io.InputStream;importjava.util.Properties;importorg.apache.commons.httpclient.HttpClient;importorg.apache.commons.httpclient.methods.PostMethod;public classPzyxUtil {private staticString pzyx_address;private staticString command;private staticString systemCode;private staticString corpName;private staticString serialNumber;private staticString limit;private staticString baseBoard;private staticString fileName;static{
InputStream in= PzyxUtil.class.getClassLoader().getResourceAsStream("pzyx.properties");
Properties p= newProperties();try{
p.load(in);
pzyx_address= p.getProperty("PZYX_ADDRESS");
command= p.getProperty("COMMAND");
systemCode= p.getProperty("SYSTEMCODE");
corpName= p.getProperty("CORPNAME");
serialNumber= p.getProperty("SERIALNUMBER");
limit= p.getProperty("LIMIT");
baseBoard= p.getProperty("BASEBOARD");
}catch(Exception e) {
e.printStackTrace();
}
}/***注册客户端的post请求
*
*@paramurl
*@parammap
*@return*@throwsException*/
private static InputStream getFile(String FileID) throwsException {//创建注销HttpClient
HttpClient httpClient = newHttpClient();//创建get或post请求方法
PostMethod method = newPostMethod(pzyx_address);//设置编码
httpClient.getParams().setContentCharset("UTF-8");//设置请求消息头,为表单方式提交
method.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");//注销设置参数
method.setParameter("Command", "Interrupt");
method.setParameter("AccessToken", "");//执行提交
httpClient.executeMethod(method);if("True".equals(method.getResponseBodyAsString().split("\\|")[0])) {
method= newPostMethod(pzyx_address);//注册设置参数
method.setParameter("Command", command);
method.setParameter("SystemCode", systemCode);
method.setParameter("CorpName", corpName);
method.setParameter("SerialNumber", serialNumber);
method.setParameter("Limit", limit);
method.setParameter("BaseBoard", baseBoard);//执行提交
httpClient.executeMethod(method);
String accessToken= method.getResponseBodyAsString().split("\\|")[1];if("True".equals(method.getResponseBodyAsString().split("\\|")[0])) {
method= newPostMethod(pzyx_address);//获取单个文件设置参数
method.setParameter("Command", "GetFileInfo");
method.setParameter("FileID", FileID);
method.setParameter("AccessToken", accessToken);//执行提交
httpClient.executeMethod(method);
String res= newString(method.getResponseBody());
fileName= res.split("\\|")[2].split(",")[0];if("True".equals(method.getResponseBodyAsString().split("\\|")[0])) {
method= newPostMethod(pzyx_address);//下载图片设置参数
method.setParameter("Command", "Download");
method.setParameter("FileID", FileID);
method.setParameter("AccessToken", accessToken);//执行提交
httpClient.executeMethod(method);
}
}
}returnmethod.getResponseBodyAsStream();
}public static voidsave(String FileID) {try{
InputStream fileInputStream=getFile(FileID);
String path= AddressUtil.getUpload_address() + "\\" + Constants.PATH_PZYX + "\\" +fileName;
File file= newFile(path);if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
BufferedOutputStream outStream= new BufferedOutputStream(newFileOutputStream(file));//创建一个Buffer字符串
byte[] buffer = new byte[1024];//每次读取的字符串长度,如果为-1,代表全部读取完毕
int len = 0;//使用一个输入流从buffer里把数据读取出来
while( (len= fileInputStream.read(buffer)) != -1){//用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度
outStream.write(buffer, 0, len);
}//关闭输出流
outStream.flush();
outStream.close();//关闭输入流
fileInputStream.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}