接口开发

来源:互联网 发布:2017年淘宝客最新玩法 编辑:程序博客网 时间:2024/05/16 13:53
private String queryInterfaceResponse(InterfaceConfig config)
  {
    StringBuffer sb = new StringBuffer(128);
    String format = "UTF-8";
    if (config == null)
      return null;
    if ((config.getFormat() != null) && (!"".equals(config.getFormat()))) {
      format = config.getFormat();
    }
    HttpURLConnection c = null;
    BufferedWriter writer = null;
    BufferedReader br = null;
    URL url = null;
    try {
      String systemid = SystemParamUtil.getParameterById("903909", "903");

      if ("1".equals(systemid))
      {
        url = new URL(config.getServerurl());
      }
      else
      {
        url = new URL(config.getPubdynachar9());
      }

      c = (HttpURLConnection)url.openConnection();
      c.setRequestMethod(config.getRequestmethod());
      c.setConnectTimeout(config.getTimeout());
      c.setReadTimeout(config.getTimeout());
      c.setDoInput(true);
      c.setDoOutput(true);

      if ((config.getPubdynachar1() != null) && (!"".equals(config.getPubdynachar1()))) {
        c.setRequestProperty(config.getPubdynachar1(), config.getPubdynachar2() == null ? "" : config.getPubdynachar2().trim());
      }
      if ((config.getPubdynachar3() != null) && (!"".equals(config.getPubdynachar3()))) {
        c.setRequestProperty(config.getPubdynachar3(), config.getPubdynachar4() == null ? "" : config.getPubdynachar4().trim());
      }
      if ((config.getPubdynachar5() != null) && (!"".equals(config.getPubdynachar5()))) {
        c.setRequestProperty(config.getPubdynachar5(), config.getPubdynachar6() == null ? "" : config.getPubdynachar6().trim());
      }
      if ((config.getPubdynachar7() != null) && (!"".equals(config.getPubdynachar7()))) {
        c.setRequestProperty(config.getPubdynachar7(), config.getPubdynachar8() == null ? "" : config.getPubdynachar8().trim());
      }

      writer = new BufferedWriter(new OutputStreamWriter(c.getOutputStream(), format));
      writer.write(config.getReqxml());
      writer.flush();

      br = new BufferedReader(new InputStreamReader(c.getInputStream(), format));
      String line;
      while ((line = br.readLine()) != null)
        sb.append(line);
    }
    catch (MalformedURLException e)
    {
      logger.error("queryInterfaceResponse异常,原因:" + e);
    } catch (ProtocolException e) {
      logger.error("queryInterfaceResponse异常,原因:" + e);
    } catch (IOException e) {
      logger.error("queryInterfaceResponse异常,原因:" + e);
    }
    finally
    {
      try {
        if (writer != null) writer.close();
      }
      catch (Exception e) { logger.error("queryInterfaceResponse异常,原因:" + e); }

      try
      {
        if (writer != null) writer.close();
      }
      catch (Exception e) { logger.error("queryInterfaceResponse异常,原因:" + e); }

      try
      {
        if (c != null) c.disconnect();
      }
      catch (Exception e) { logger.error("queryInterfaceResponse异常,原因:" + e); }

      try
      {
        if (br != null) br.close();
      }
      catch (Exception e) { logger.error("queryInterfaceResponse异常,原因:" + e); }

    }
    return sb.toString();
  }
 
 
  private Map<String, Element> toParserMap(String resXML, InterfaceConfig config)
  {
    Map map = new HashMap();
    try {
      SAXBuilder sb = new SAXBuilder();
      Document doc = sb.build(new ByteArrayInputStream(resXML.getBytes(config.getFormat())));
      Element root = doc.getRootElement();
      if (root == null) {
        return map;
      }
      List nodes = root.getChildren();
      for (Element n : nodes) {
        if (n == null) {
          break;
        }
        if ("Body".equals(n.getName())) {
          List multeRefs = n.getChildren();
          for (Element m : multeRefs) {
            if (m.getName().endsWith("Response"))
              map.put("response", m);
            else {
              map.put(m.getAttributeValue("id"), m);
            }
          }
        }
      }
    }
    catch (Exception e)
    {
      logger.error("将返回报文节点,转化为map 异常,原因:" + e);
    }
    return map;
  }
 
 
      Map bodyMap = toParserMap(resXml, config);
      Element response = (Element)bodyMap.get("response");
0 0
原创粉丝点击