java 中HttpClient傳輸xml字符串實例詳解
java 中HttpClient傳輸xml字符串實例詳解
介紹:我現(xiàn)在有一個對象page,需要將page對象轉(zhuǎn)換為xml格式并以binary方式傳輸?shù)椒?wù)端
其中涉及到的技術(shù)點有:
1、對象轉(zhuǎn)xml流
2、輸出流轉(zhuǎn)輸入流
3、httpClient發(fā)送二進(jìn)制流數(shù)據(jù)
POM文件依賴配置
<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代碼示例
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");
//初始化并轉(zhuǎn)換對象為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 );
//將流轉(zhuǎn)換并放入到InputStreamEntity中
InputStreamEntity inputStreamEntity=new InputStreamEntity(new ByteArrayInputStream(out.toByteArray()));
//發(fā)送請求
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();
//獲取返回結(jié)果
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));
}
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Java commons-httpclient如果實現(xiàn)get及post請求
- java爬蟲之使用HttpClient模擬瀏覽器發(fā)送請求方法詳解
- java httpclient設(shè)置超時時間和代理的方法
- 如何使用HttpClient發(fā)送java對象到服務(wù)器
- Java11新特性之HttpClient小試牛刀
- java使用common-httpclient包實現(xiàn)post請求方法示例
- JAVA通過HttpClient發(fā)送HTTP請求的方法示例
- JAVA利用HttpClient進(jìn)行HTTPS接口調(diào)用的方法
- java web中 HttpClient模擬瀏覽器登錄后發(fā)起請求
- Java爬蟲Jsoup+httpclient獲取動態(tài)生成的數(shù)據(jù)
- Java httpClient介紹以及使用示例
相關(guān)文章
springboot下使用shiro自定義filter的個人經(jīng)驗分享
這篇文章主要介紹了springboot下使用shiro自定義filter的個人經(jīng)驗,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
java反射實現(xiàn)javabean轉(zhuǎn)json實例代碼
基于java反射機(jī)制實現(xiàn)javabean轉(zhuǎn)json字符串實例,大家參考使用吧2013-12-12
spring boot啟動時mybatis報循環(huán)依賴的錯誤(推薦)
今天小編抽時間給大家分享spring boot啟動時mybatis報循環(huán)依賴的錯誤,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-12-12
實現(xiàn)一個基于Servlet的hello world程序詳解步驟
Java Servlet 是運行在 Web 服務(wù)器或應(yīng)用服務(wù)器上的程序,它是作為來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序之間的中間層2022-02-02

