添加dom4j依赖
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.3</version>
</dependency>
获取webservice接口返回xml数据并解析:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Service
public class GetWebService {
private HttpClient httpclient = HttpClients.createDefault();
public List<Model> getModelList() {
HttpPost hpost = new HttpPost("http://IP:8080/xxx/getModelList");
HttpResponse response;
try {
response = httpclient.execute(hpost);
HttpEntity resEntity = response.getEntity();
String xml = EntityUtils.toString(resEntity, "UTF-8");
if (xml == null || xml.trim().length() == 0) {
return null;
}
Document doc = DocumentHelper.parseText(xml);
Element root = doc.getRootElement();
Iterator<Element> it = root.elementIterator();
List<Model> modelList = new ArrayList<Model>();
Model bean = null;
Element element = null;
while (it.hasNext()) {
element = it.next();
bean = new Model();
bean.setModelCd(element.elementTextTrim("model_cd"));
bean.setModelName(element.elementTextTrim("model_name_chn"));
modelList.add(bean);
}
log.info("get monosys result size:" + modelList.size());
return modelList;
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
return null;
} finally {
hpost.releaseConnection();
}
}
public Model getModelCd(String productCd) {
HttpPost hpost = new HttpPost("http://IP:端口/xxx/getProduct");
List<NameValuePair> params=new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("productCd", productCd));
HttpEntity entity = new UrlEncodedFormEntity(params, Consts.UTF_8);
hpost.setEntity(entity);
HttpResponse response;
try {
response = httpclient.execute(hpost);
HttpEntity resEntity = response.getEntity();
String xml = EntityUtils.toString(resEntity, "UTF-8");
if (xml == null || xml.trim().length() == 0) {
return null;
}
Document doc = DocumentHelper.parseText(xml);
Element root = doc.getRootElement();
Element eleMachineNo = root.element("model_cd");
String modelCd = eleMachineNo.getStringValue();
Model model = new Model();
model.setModelCd(modelCd);
model.setProductCd(productCd);
return model;
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
return null;
} finally {
hpost.releaseConnection();
}
}
public static void main(String[] args) throws Exception {//需要测试再手动取消注释
GetWebService service = new GetWebService();
Model model = service.getMachine("173707105"); //访问带参数webservice接口
List<Model> modelList = service.getModelList();//访问不带参数webservice接口
for (Model m : modelList) {
if(StringUtils.equals(model.getModelCd(), m.getModelCd())) {
System.out.println(" m.getModelCd() : " + m.getModelCd() + "--> m.getModelName() : " + m.getModelName());
}
}
}
}
解析接收实体:
import lombok.Data;
@Data
public class Model {
private String modelCd;
private String modelName;
private String productCd;
}