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ā)送二進制流數(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進行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-09java反射實現(xiàn)javabean轉(zhuǎn)json實例代碼
基于java反射機制實現(xiàn)javabean轉(zhuǎn)json字符串實例,大家參考使用吧2013-12-12spring 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