java 中HttpClient傳輸xml字符串實(shí)例詳解
java 中HttpClient傳輸xml字符串實(shí)例詳解
介紹:我現(xiàn)在有一個(gè)對(duì)象page,需要將page對(duì)象轉(zhuǎn)換為xml格式并以binary方式傳輸?shù)椒?wù)端
其中涉及到的技術(shù)點(diǎn)有:
1、對(duì)象轉(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{ //定義對(duì)象 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)換對(duì)象為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ā)送請(qǐng)求 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)); } }
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Java commons-httpclient如果實(shí)現(xiàn)get及post請(qǐng)求
- java爬蟲(chóng)之使用HttpClient模擬瀏覽器發(fā)送請(qǐng)求方法詳解
- java httpclient設(shè)置超時(shí)時(shí)間和代理的方法
- 如何使用HttpClient發(fā)送java對(duì)象到服務(wù)器
- Java11新特性之HttpClient小試牛刀
- java使用common-httpclient包實(shí)現(xiàn)post請(qǐng)求方法示例
- JAVA通過(guò)HttpClient發(fā)送HTTP請(qǐng)求的方法示例
- JAVA利用HttpClient進(jìn)行HTTPS接口調(diào)用的方法
- java web中 HttpClient模擬瀏覽器登錄后發(fā)起請(qǐng)求
- Java爬蟲(chóng)Jsoup+httpclient獲取動(dòng)態(tài)生成的數(shù)據(jù)
- Java httpClient介紹以及使用示例
相關(guān)文章
springboot下使用shiro自定義filter的個(gè)人經(jīng)驗(yàn)分享
這篇文章主要介紹了springboot下使用shiro自定義filter的個(gè)人經(jīng)驗(yàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09java反射實(shí)現(xiàn)javabean轉(zhuǎn)json實(shí)例代碼
基于java反射機(jī)制實(shí)現(xiàn)javabean轉(zhuǎn)json字符串實(shí)例,大家參考使用吧2013-12-12spring boot啟動(dòng)時(shí)mybatis報(bào)循環(huán)依賴的錯(cuò)誤(推薦)
今天小編抽時(shí)間給大家分享spring boot啟動(dòng)時(shí)mybatis報(bào)循環(huán)依賴的錯(cuò)誤,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-12-12Java中CAS機(jī)制實(shí)現(xiàn)方法詳解
傳統(tǒng)的并發(fā)控制手段如synchronized和ReentrantLock雖有效防止資源競(jìng)爭(zhēng),卻可能引起性能開(kāi)銷,相比之下,CAS(CompareAndSwap)提供一種輕量級(jí)的樂(lè)觀鎖策略,通過(guò)硬件級(jí)別的原子指令實(shí)現(xiàn)無(wú)鎖并發(fā),提高性能,需要的朋友可以參考下2024-09-09一篇文章帶你搞懂Java restful 接口開(kāi)發(fā)
這篇文章主要介紹了Java restful 接口開(kāi)發(fā)的幾種方式(HTTPS),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2021-10-10實(shí)現(xiàn)一個(gè)基于Servlet的hello world程序詳解步驟
Java Servlet 是運(yùn)行在 Web 服務(wù)器或應(yīng)用服務(wù)器上的程序,它是作為來(lái)自 Web 瀏覽器或其他 HTTP 客戶端的請(qǐng)求和 HTTP 服務(wù)器上的數(shù)據(jù)庫(kù)或應(yīng)用程序之間的中間層2022-02-02