POST 提交XML 文件

来源:互联网 发布:bp算法的基本思想 编辑:程序博客网 时间:2024/05/22 02:01

1、请求

import static org.junit.Assert.assertTrue;import java.io.IOException;import org.apache.commons.io.IOUtils;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.HttpClientBuilder;import org.apache.http.protocol.HTTP;import org.apache.http.util.EntityUtils;import org.junit.Before;import org.junit.Test;import org.springframework.core.io.ClassPathResource;public class ctrlDemo {    private HttpClient httpClient;    @Before    public void setUp() {        httpClient = HttpClientBuilder.create().build();    }    @Test    public void test() throws Exception {        String url = "http://";        String xml = loadData("***.xml");        BaseResp baseReqsp = executePost(url, xml, httpClient);        assertTrue(baseReqsp.isSuccess());    }    private String loadData(String path) throws IOException {        ClassPathResource resource = new ClassPathResource(path);        return IOUtils.toString(resource.getInputStream());    }        public static void executePost(String url, String body, HttpClient httpClient) throws Exception{        HttpPost httpPost = new HttpPost(url);        httpPost.addHeader(HTTP.CONTENT_TYPE, "application/xml");//请求参数为XML格式                 StringEntity entity = new StringEntity(body, "UTF-8");          httpPost.setEntity(entity);          HttpResponse resp = httpClient.execute(httpPost);        HttpEntity respEntity = resp.getEntity();        String text = EntityUtils.toString(respEntity, "UTF-8");    }}

2、接收

import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.io.IOUtils;@RequestMapping(value = "/xml/请求路径", method = RequestMethod.POST)    public void order(HttpServletRequest request, HttpServletResponse response) {                    String xmlReq = IOUtils.toString(request.getInputStream());            System.out.println("data: {}", xmlReq);// unmarshal : 使用 JAXB 解析 (具体如何解析请看 http://www.oschina.net/question/tag/jaxb )//Object : 代表需要解析的JAVA类            Object data = unmarshal(xmlReq, Object.class, false);                }


0 0