在移动研究院的一天

本文记录了在移动研究院进行华为接口调试的过程,包括使用squid作为代理访问外网资源,以及解决XML文件解析错误的问题。调试中发现XML文件格式对解析成功至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    今天在移动研究院与华为的接口调试 ,比较顺利。

    调试过程中必然不会一帆风顺,所以需要我这里能够登陆外网,查查资料、收收邮件。实验室的服务器有一个外网地址,而且是linux操作系统。ok,一切顺理成章,squid做代理。能够这么顺利的配置squid一是因为配置相对简单,二还要拜公司所赐,让我不止一次的配置了squid,一切源于对知识的渴望,哈哈!

    调试华为的接口,能够得到返回的XML,凡是解析的时候就有错误。很奇怪,解析XML的代码我在公司就测试通过了测试,为什么这里不行呢?找了很长时间的问题,也没有能解决!突然发现待解析的XML文件的特殊性:




 
<?xml version="1.0' encoding="GBK"?>
<returncode>
10405
</returncode>

     这个XML文件开头有一大片空白行,于是删除之,再解析一切ok。这才想起来XML对格式的要求很严格,第一个标签“<?xml version="1.0' encoding="GBK"?>”必须要顶格且在它之前不能有空行。于是改变写XML的那段程序,trim掉一切空白行,ok,调试通过。

    在此放上java解析XML的一个例子:

<%@ page import="javax.xml.parsers.DocumentBuilderFactory"%>
<%@ page import="javax.xml.parsers.DocumentBuilder"%>
<%@ page import="org.w3c.dom.NodeList"%>
<%@ page import="org.w3c.dom.Document"%>
<%@ page import="org.xml.sax.SAXParseException"%>
……
        DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
        DocumentBuilder builder
=factory.newDocumentBuilder();
        Document doc 
= builder.parse(file);   //file是待解析的文件名
        NodeList nl = doc.getElementsByTagName("returncode");

        String orderRingResponseCode 
= "";
        
for (int i=0;i<nl.getLength();i++){
            orderRingResponseCode 
= doc.getElementsByTagName("returncode").item(i).getFirstChild().getNodeValue();
            IvrFlowLogger.info(
"reponse returnCode : " + orderRingResponseCode.trim());
        }
……

    完工!回家

                                                                                                                      ------------写于移动研究院 2007-01-25

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值