HttpClient连接WebService使用dom4j解析xml

 添加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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往事不堪回首..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值