package xin.glue.ui.G.G04; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; import org.apache.commons.lang.StringUtils; import com.alibaba.fastjson.JSONObject; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.context.PosContext; public class XINSaveAskStock extends PosActivity { public String runActivity(PosContext context) { //选择 String[] AskStock = (String[]) context.get("AskStock"); //请求类型 String[] ASK_STOCK_ADDR = (String[]) context.get("ASK_STOCK_ADDR"); //现在库位置 String flag = "",YARD_NO = ""; if((ASK_STOCK_ADDR == null || StringUtils.isBlank(ASK_STOCK_ADDR[0])) && AskStock[0].equals("E")){ context.put("MESSAGES","请输入具体跺位"); return PosBizControlConstants.SUCCESS; } if(AskStock == null || StringUtils.isBlank(AskStock[0])){ context.put("MESSAGES","请选择请求同步的具体库位"); return PosBizControlConstants.SUCCESS; } if(AskStock[0].equals("A")){ flag = "A"; YARD_NO = "0"; }else if(AskStock[0].equals("B")){ flag = "B"; YARD_NO = "Z1"; }else if(AskStock[0].equals("C")){ flag = "B"; YARD_NO = "Z2"; }else if(AskStock[0].equals("D")){ flag = "B"; YARD_NO = "Z3"; }else if(AskStock[0].equals("E")){ flag = "S"; YARD_NO = ASK_STOCK_ADDR[0]; } JSONObject jo = new JSONObject(); jo.put("FLAG", flag); jo.put("YARD_NO", YARD_NO); jo.put("SPARE", "999999"); jo.put("MSG_NO", "MEWM05"); JSONObject web = httpURLPOSTCase("http://172.16.70.180:20010/uacs/receiveMessage",jo.toString()); int code = web.getIntValue("HttpCode"); String HttpMsg = web.getString("HttpMsg"); if(code != HttpURLConnection.HTTP_OK || !HttpMsg.equals(jo.toString())){ context.put("MESSAGES", " 同步请求发送失败! "); return PosBizControlConstants.SUCCESS; } context.put("MESSAGES", " 同步请求发送成功! "); return PosBizControlConstants.SUCCESS; } /** * 发送Http Post请求*/ public JSONObject httpURLPOSTCase(String methodUrl,String data) { HttpURLConnection connection = null; PrintWriter pw = null; BufferedReader reader = null; String line = ""; StringBuilder result = new StringBuilder(); int resultCode = 0; JSONObject rtjo = new JSONObject(); try { URL url = new URL(methodUrl); connection = (HttpURLConnection)url.openConnection();// 根据URL生成HttpURLConnection connection.setDoOutput(true);// 设置是否向connection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true,默认情况下是false connection.setDoInput(true); // 设置是否从connection读入,默认情况下是true; connection.setRequestMethod("POST");// 设置请求方式为post,默认GET请求 connection.setUseCaches(false);// post请求不能使用缓存设为false connection.setConnectTimeout(10000);// 连接主机的超时时间 connection.setReadTimeout(10000);// 从主机读取数据的超时时间 connection.setInstanceFollowRedirects(true);// 设置该HttpURLConnection实例是否自动执行重定向 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive");// 连接复用 connection.setRequestProperty("charset", "utf-8"); connection.setRequestProperty("Content-Type", "application/json;charset:utf-8"); connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); connection.connect();// 建立TCP连接,getOutputStream会隐含的进行connect,所以此处可以不要 pw = new PrintWriter(connection.getOutputStream());// 创建输入输出流,用于往连接里面输出携带的参数 pw.write(data);//json数据 pw.flush(); pw.close(); resultCode = connection.getResponseCode(); if (resultCode == HttpURLConnection.HTTP_OK) { reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));// 发送http请求 // 循环读取流 while (null != (line = reader.readLine())) { result.append(line); } reader.close(); }else result.append(""); rtjo.put("HttpCode", resultCode); rtjo.put("HttpMsg", (StringUtils.isBlank(result.toString()))?"":result.toString()); } catch (IOException e) { e.printStackTrace(); } finally { connection.disconnect(); } return rtjo; } }