Axis是一款基于Java的Web服務(wù)框架,它可以方便地調(diào)用遠(yuǎn)程Web服務(wù)。在使用Axis調(diào)用Web服務(wù)時,返回值通常是一個JSON對象。
{ "result": { "name": "小明", "age": 18, "gender": "男" }, "status": { "code": 0, "msg": "操作成功" } }
JSON對象包含兩部分:result和status。result中存放Web服務(wù)返回的實際數(shù)據(jù),status則是一些額外的信息,例如操作狀態(tài)碼和錯誤信息等。
在Java中,使用Axis調(diào)用Web服務(wù)時,我們可以通過獲取返回值中的result部分,來獲得Web服務(wù)返回的實際數(shù)據(jù)。例如:
Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress("http://localhost:8080/WebService"); call.setOperationName(new QName("http://ws.apache.org/axis/sample", "getUserInfo")); Object result = call.invoke(new Object[]{}); // 調(diào)用WebService if(result instanceof org.apache.axis.client.AxisFault) { org.apache.axis.client.AxisFault fault = (org.apache.axis.client.AxisFault)result; System.out.println("調(diào)用WebService失敗:" + fault.getMessage()); } else { org.apache.axis.message.SOAPBody soapBody = (org.apache.axis.message.SOAPBody)result; String json = soapBody.getFirstChild().getFirstChild().getFirstChild().toString(); JSONObject jsonObj = JSONObject.fromObject(json); int code = jsonObj.getJSONObject("status").getInt("code"); String msg = jsonObj.getJSONObject("status").getString("msg"); JSONObject user = jsonObj.getJSONObject("result"); if(code == 0) { String name = user.getString("name"); int age = user.getInt("age"); String gender = user.getString("gender"); System.out.println(name + "," + age + "歲," + gender); } else { System.out.println("調(diào)用WebService返回錯誤:" + msg); } }
以上代碼示例中,通過調(diào)用WebService獲取返回值,并將返回值轉(zhuǎn)換為JSON對象,從中獲取到操作狀態(tài)碼、錯誤信息和實際數(shù)據(jù),然后進行相應(yīng)的處理。
上一篇css3特效展示