java 中HttpClient传输xml字符串实例详解
介绍:我现在有一个对象page,需要将page对象转换为xml格式并以binary方式传输到服务端
其中涉及到的技术点有:
1、对象转xml流
2、输出流转输入流
3、httpClient发送二进制流数据
POM文件依赖配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
< dependencies > < dependency > < groupId >junit</ groupId > < artifactId >junit</ artifactId > < version >3.8.1</ version > < scope >test</ scope > </ dependency > < dependency > < groupId >org.apache.httpcomponents</ groupId > < artifactId >httpclient</ artifactId > < version >4.5.2</ version > </ dependency > < dependency > < groupId >org.apache.httpcomponents</ groupId > < artifactId >httpmime</ artifactId > < version >4.5.2</ version > </ dependency > < dependency > < groupId >commons-lang</ groupId > < artifactId >commons-lang</ artifactId > < version >2.4</ version > </ dependency > < dependency > < groupId >com.google.code.gson</ groupId > < artifactId >gson</ artifactId > < version >2.2.4</ version > < type >jar</ type > < scope >compile</ scope > </ dependency > < dependency > < groupId >org.xwiki.platform</ groupId > < artifactId >xwiki-platform-rest-model</ artifactId > < version >7.2</ version > </ dependency > </ dependencies > |
java代码示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
public void testNewPage() throws Exception{ //定义对象 Page page = new Page(); page.setTitle( "testPage" ); page.setSyntax( "xwiki/2.0" ); page.setContent( "This is a testPage" ); page.setId( "xwiki:Main.testPage" ); //初始化并转换对象为xml文件的流 JAXBContext context = JAXBContext.newInstance( "org.xwiki.rest.model.jaxb" ); Marshaller marshaller=context.createMarshaller(); Unmarshaller unmarshaller = context.createUnmarshaller(); ByteArrayOutputStream out = new ByteArrayOutputStream(); marshaller.marshal( page, out ); //将流转换并放入到InputStreamEntity中 InputStreamEntity inputStreamEntity= new InputStreamEntity( new ByteArrayInputStream(out.toByteArray())); //发送请求 CloseableHttpClient httpclient = HttpClients.createDefault(); HttpUriRequest httpPost = RequestBuilder.put() .setUri( new URI( "http://172.16.200.220:8082/xwiki/rest/wikis/xwiki/spaces/Main/pages/testPage" )) .setEntity(inputStreamEntity) .setHeader( "Content-Type" , "application/xml" ) .setHeader( "Cookie" , cookieStr).build(); //获取返回结果 CloseableHttpResponse response = httpclient.execute(httpPost); System.out.println(response.getStatusLine().getStatusCode()); HttpEntity responseEntity=response.getEntity(); System.out.println(responseEntity); if (response.getStatusLine().getStatusCode()< 400 ){ Page responsePage = (Page) unmarshaller.unmarshal(responseEntity.getContent()); System.out.println(responsePage); // System.out.println(new Gson().toJson(responsePage)); } } |
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
原文链接:http://blog.csdn.net/gsying1474/article/details/51505714