7f9a14561fc7827720fad1585294d103108539b0.svn-base 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package xin.glue.ui.G.G04;
  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.io.PrintWriter;
  6. import java.net.HttpURLConnection;
  7. import java.net.URL;
  8. import org.apache.commons.lang.StringUtils;
  9. import com.alibaba.fastjson.JSONObject;
  10. import com.posdata.glue.biz.activity.PosActivity;
  11. import com.posdata.glue.biz.constants.PosBizControlConstants;
  12. import com.posdata.glue.context.PosContext;
  13. public class XINSaveAskStock extends PosActivity {
  14. public String runActivity(PosContext context) { //选择
  15. String[] AskStock = (String[]) context.get("AskStock"); //请求类型
  16. String[] ASK_STOCK_ADDR = (String[]) context.get("ASK_STOCK_ADDR"); //现在库位置
  17. String flag = "",YARD_NO = "";
  18. if((ASK_STOCK_ADDR == null || StringUtils.isBlank(ASK_STOCK_ADDR[0])) && AskStock[0].equals("E")){
  19. context.put("MESSAGES","请输入具体跺位");
  20. return PosBizControlConstants.SUCCESS;
  21. }
  22. if(AskStock == null || StringUtils.isBlank(AskStock[0])){
  23. context.put("MESSAGES","请选择请求同步的具体库位");
  24. return PosBizControlConstants.SUCCESS;
  25. }
  26. if(AskStock[0].equals("A")){
  27. flag = "A";
  28. YARD_NO = "0";
  29. }else if(AskStock[0].equals("B")){
  30. flag = "B";
  31. YARD_NO = "Z1";
  32. }else if(AskStock[0].equals("C")){
  33. flag = "B";
  34. YARD_NO = "Z2";
  35. }else if(AskStock[0].equals("D")){
  36. flag = "B";
  37. YARD_NO = "Z3";
  38. }else if(AskStock[0].equals("E")){
  39. flag = "S";
  40. YARD_NO = ASK_STOCK_ADDR[0];
  41. }
  42. JSONObject jo = new JSONObject();
  43. jo.put("FLAG", flag);
  44. jo.put("YARD_NO", YARD_NO);
  45. jo.put("SPARE", "999999");
  46. jo.put("MSG_NO", "MEWM05");
  47. JSONObject web = httpURLPOSTCase("http://172.16.70.180:20010/uacs/receiveMessage",jo.toString());
  48. int code = web.getIntValue("HttpCode");
  49. String HttpMsg = web.getString("HttpMsg");
  50. if(code != HttpURLConnection.HTTP_OK || !HttpMsg.equals(jo.toString())){
  51. context.put("MESSAGES", " 同步请求发送失败! ");
  52. return PosBizControlConstants.SUCCESS;
  53. }
  54. context.put("MESSAGES", " 同步请求发送成功! ");
  55. return PosBizControlConstants.SUCCESS;
  56. }
  57. /**
  58. * 发送Http Post请求*/
  59. public JSONObject httpURLPOSTCase(String methodUrl,String data) {
  60. HttpURLConnection connection = null;
  61. PrintWriter pw = null;
  62. BufferedReader reader = null;
  63. String line = "";
  64. StringBuilder result = new StringBuilder();
  65. int resultCode = 0;
  66. JSONObject rtjo = new JSONObject();
  67. try {
  68. URL url = new URL(methodUrl);
  69. connection = (HttpURLConnection)url.openConnection();// 根据URL生成HttpURLConnection
  70. connection.setDoOutput(true);// 设置是否向connection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true,默认情况下是false
  71. connection.setDoInput(true); // 设置是否从connection读入,默认情况下是true;
  72. connection.setRequestMethod("POST");// 设置请求方式为post,默认GET请求
  73. connection.setUseCaches(false);// post请求不能使用缓存设为false
  74. connection.setConnectTimeout(10000);// 连接主机的超时时间
  75. connection.setReadTimeout(10000);// 从主机读取数据的超时时间
  76. connection.setInstanceFollowRedirects(true);// 设置该HttpURLConnection实例是否自动执行重定向
  77. connection.setRequestProperty("accept", "*/*");
  78. connection.setRequestProperty("connection", "Keep-Alive");// 连接复用
  79. connection.setRequestProperty("charset", "utf-8");
  80. connection.setRequestProperty("Content-Type", "application/json;charset:utf-8");
  81. connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
  82. connection.connect();// 建立TCP连接,getOutputStream会隐含的进行connect,所以此处可以不要
  83. pw = new PrintWriter(connection.getOutputStream());// 创建输入输出流,用于往连接里面输出携带的参数
  84. pw.write(data);//json数据
  85. pw.flush();
  86. pw.close();
  87. resultCode = connection.getResponseCode();
  88. if (resultCode == HttpURLConnection.HTTP_OK) {
  89. reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));// 发送http请求
  90. // 循环读取流
  91. while (null != (line = reader.readLine())) {
  92. result.append(line);
  93. }
  94. reader.close();
  95. }else
  96. result.append("");
  97. rtjo.put("HttpCode", resultCode);
  98. rtjo.put("HttpMsg", (StringUtils.isBlank(result.toString()))?"":result.toString());
  99. } catch (IOException e) {
  100. e.printStackTrace();
  101. } finally {
  102. connection.disconnect();
  103. }
  104. return rtjo;
  105. }
  106. }