当调用的接口越来越多的时候,我也深深的知道自己所见到的世面是越来越窄,之前一直没有用过xml来传输接口参数,总之,该学习的还是要学习,无论是xml还是json还是什么的,都是双方约定好的一种传输协议,只有在双方都约定好并且做好一定的数据安全的时候才有可能达成交易,这样,调用就开始了。
当我拿到接口文档的时候,是这样描述的,post方式提交,然后有一个地址,一个提交案例,并且没有说清楚是怎样的传输。现在拿到接口的一瞬间就是想能不能用postman先来试一试,看能不能调通,调通之后再写代码,进行测试。扯远了,还是说说post方式提交xml吧……
public static void main(String[] args) throws Exception {
//直接字符串拼接
StringBuffer sb = new StringBuffer();
sb.append("<?xml version=”1.0” encoding=”utf-8” ?>\n" +
"<AdvPay>\n" +
"\t<PubInfo>\n" +
"\t\t<Version>1</Version>\n" +
"\t\t<EnterpriseBossId >1234</EnterpriseBossId>\n" +
"\t<VerifyCode>234234fsdf124121fs</VerifyCode>\n" +
"\t</PubInfo>\n" +
"\t<BusiData>\n" +
"\t\t<CreateTime> 1430969360657</CreateTime>\n" +
"\t\t<ChargePhoneNum>18867103685</ChargePhoneNum>\n" +
"\t\t<UserID>200</UserID>\n" +
"\t\t<ChargeNum>1</ChargeNum>\n" +
"\t</BusiData>\n" +
"</AdvPay>\n");//xml数据存储
String data = sb.toString();
System.out.println(data);
String url = "http://183.230.97.113/cq-web/open/ChargeFlow";
HttpClient httpclient = new HttpClient();
PostMethod post = new PostMethod(url);
String info = null;
try {
RequestEntity entity = new StringRequestEntity(data, "text/plain",
"utf-8");
post.setRequestEntity(entity);
httpclient.executeMethod(post);
int code = post.getStatusCode();
if (code == HttpStatus.SC_OK)
info = new String(post.getResponseBodyAsString()); //接口返回的信息
} catch (Exception ex) {
ex.printStackTrace();
} finally {
post.releaseConnection();
}
System.out.println(info);
}
其实,现在大多数的方式都是HTTP协议,然后提交形式各有千秋罢了。以xml形式来传输数据,把要传输的xml拼接成String的类型,通过httpclient来提交。其实当接口调通的那一刻,你才明白,提供接口的一方才是王道,他用什么你就要迁就他,不过沟通真的太重要……还有一个古老的接口等着我…唉…