package com.nantian.nc; import java.io.ByteArrayInputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.StringWriter; import java.net.URL; import java.net.URLConnection; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.TransformerFactoryConfigurationError; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; public class NCTest2 { public static void main(String[] args) { String urlStr = "http://192.168.0.68:80/service/XChangeServlet?account=0002&receiver=123"; XmlBuilder builder = new XmlBuilder("F:/test1.xml"); String xmlString=doc2string(builder.getDoc()); System.out.println(xmlString); sendPingzheng(urlStr, xmlString); } public static Document sendPingzheng(String urlStr, String xmlString) { byte[] xmlData = xmlString.getBytes("utf-8"); DataInputStream input = null; java.io.ByteArrayOutputStream out = null; Document d = null; try { URL url = new URL(urlStr); URLConnection urlCon = url.openConnection(); urlCon.setDoOutput(true); urlCon.setDoInput(true); urlCon.setUseCaches(false); urlCon.setRequestProperty("Content-Type", "text/xml"); urlCon.setRequestProperty("Content-length", String.valueOf(xmlData.length)); DataOutputStream printout = new DataOutputStream(urlCon.getOutputStream()); printout.write(xmlData); printout.flush(); printout.close(); input = new DataInputStream(urlCon.getInputStream()); byte[] rResult; out = new java.io.ByteArrayOutputStream(); byte[] bufferByte = new byte[256]; int l = -1; int downloadSize = 0; while ((l = input.read(bufferByte)) > -1) { downloadSize += l; out.write(bufferByte, 0, l); out.flush(); } rResult = out.toByteArray(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); d = db.parse(new ByteArrayInputStream(rResult)); String TaskAddr = d.getElementsByTagName("resultdescription").item(0).getFirstChild().getNodeValue(); String resultcode = d.getElementsByTagName("resultcode").item(0).getFirstChild().getNodeValue(); System.out.println("resultdescription:" + TaskAddr); System.out.println("resultcode"+resultcode); System.out.println(doc2string(d)); } catch (Exception e) { e.printStackTrace(); } finally { try { out.close(); input.close(); } catch (Exception ex) { ex.printStackTrace(); } } return d; } // document转换为string public static String doc2string(Document doc) { StringWriter sw = null; try { sw = new StringWriter(); Transformer serializer = TransformerFactory.newInstance().newTransformer(); serializer.transform(new DOMSource(doc), new StreamResult(sw)); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerFactoryConfigurationError e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } return sw.toString(); } }
xml文件操作类
package com.nantian.nc; import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.apache.log4j.Logger; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.SAXException; public class XmlBuilder { private String path = null; private Document doc = null; private Element root = null; private Logger logger = Logger.getLogger(getClass().getName()); public XmlBuilder(String path) { this.path = path; init(); } public void init() { buildDocument(); buildRoot(); } private void buildDocument() { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = factory.newDocumentBuilder(); logger.debug("Construct document builder success."); doc = builder.parse(new File(path)); logger.debug("Build xml document success."); } catch (ParserConfigurationException e) { logger.error("Construct document builder error:" + e); } catch (SAXException e) { logger.error("Parse xml file error:" + e); } catch (IOException e) { logger.error("Read xml file error:" + e); } } private void buildRoot() { root = doc.getDocumentElement(); } public Document getDoc() { return doc; } public void setDoc(Document doc) { this.doc = doc; } public String getPath() { return path; } public void setPath(String path) { this.path = path; } public Element getRoot() { return root; } public void setRoot(Element root) { this.root = root; } }
相关推荐
单据类型:gl (gl代表总账凭证,NC接口的默认值,请勿修改) 凭证类别:记账凭证 (部分账套写着:记帐凭证,请登录NC系统确认) 外部凭证导入到:12200404 (这个代码是NC账套的代码,登录时可见) 接收单位编码:...
此方案是解决用友NC与其他业务系统对接的资料,提供了现金的思想,并且实现了不同系统的数据共享和无缝连接。
接口方案说明,方便大家参考,类似的项目方案可以参考。
用友NC财务软件数据导出方法.doc
使用API调用来实现VB和PB与现有财务软件用友和蝶实现程序接口,主要用来酒店管理方面.
用友NC凭证导入XML中文说明 <voucher_head>
用友nc57凭证导入文件,xml配置参照,可以参照文件看一下学习导入规则
用友NC财务共享服务中心解决方案.pdf
针对于NC3.0、NC3.1、NC3.5、NC5.0在打印记账凭证和账簿时好多客户不知道如何打印,为了方便大家下面详细介绍了其设置流程图,NC3.0、NC3.1、NC3.5打印界面打印设置方法和模板分配界面都一样,NC5.0与其稍微有点区别...
用友NC财务总帐系统操作流程 一、总账系统初始化 1、参数设置; 2、系统初始化; 二、业务流程 ……
通过应用集成整合各类应用系统,实现集团范围内业务系统与NC集团财务管理系统的无缝对接和业务协作,达到财务业务一体化和单据数据信息的共享,提高NC财务业务数据的录入效率和准确性,避免凭证和业务单据的重复录入...
用友NC系统财务操作手册.pptx
用友NC财务报表系统操作步骤.doc
用友NC v3数据字典,有rtf格式和HTML格式,非常清晰、明了,开发设计大型ERP系统及对用友NC做接口开发必备材料。 个人开发分析珍藏。
用友NC开发API字典 用友NC开发API字典
用友NC任意文件上传漏洞利用工具,用友NC6.5的某个页面,存在任意文件上传漏洞。漏洞成因在于上传文件处未作类型限制,未经身份验证的攻击者可通过向目标系统发送特制数据包来利用此漏洞,成功利用此漏洞的远程攻击...
用友NC65-erp开发工具uapstudio进行开发webservice时,需要对开发工具进行必要的设置,文档总结了一些必要配置及创建一个helloworld案例并用soapui进行测试
用友凭证工具,生成总账工具可以使用的格式
用友NC57数据字典 包含NC57数据库中 字段的解释
用友NC财务共享服务中心解决方案,是一款针对企业财务管理的全面、高效的智慧化解决方案。该方案以109页的详尽文档形式展现,内容丰富,涵盖了从财务流程优化、系统集成、数据分析到风险管理等多个方面,旨在帮助...