POST方式提交XML呼叫介面
阿新 • • 發佈:2018-12-31
當呼叫的介面越來越多的時候,我也深深的知道自己所見到的世面是越來越窄,之前一直沒有用過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來提交。其實當介面調通的那一刻,你才明白,提供介面的一方才是王道,他用什麼你就要遷就他,不過溝通真的太重要……還有一個古老的介面等著我…唉…