通过ResponseHandler来处理Http响应
来源:互联网 发布:xp 保存网络用户密码 编辑:程序博客网 时间:2024/06/06 04:55
处理对响应对象处理过程的封装
package com.struts2.demo;import com.struts2.demo.utils.AvailableSettings;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.http.Consts;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.StatusLine;import org.apache.http.client.ResponseHandler;import org.apache.http.client.fluent.Request;import org.apache.http.entity.ContentType;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.io.SAXReader;import java.io.IOException;/** * Handler that encapsulates the process of generating a response object from a HttpResponse. * Created by Frank on 2014/6/9. */public class FluentResponseHandling { private static final Log logger = LogFactory.getLog(AvailableSettings.LOGNAME_TEST); public static void main(String[] args) { try { Document document = Request.Get("http://www.baidu.com").execute().handleResponse(new ResponseHandler<Document>() { @Override public Document handleResponse(HttpResponse response) { return getXmlDoc(response); } }); System.out.println(document.asXML()); } catch (IOException e) { logger.error("IOException:" + e.getMessage()); } } private static Document getXmlDoc(HttpResponse response) { StatusLine statusLine = response.getStatusLine(); HttpEntity httpEntity = response.getEntity(); if (statusLine.getStatusCode() >= 300) { logger.error("HttpResponseException,statusCode:" + statusLine.getStatusCode() + " reasonPhrase:" + statusLine.getReasonPhrase()); return null; } if (null == httpEntity) { logger.error("ClientProtocolException:Response contains no content"); return null; } ContentType contentType = ContentType.getOrDefault(httpEntity); if (!contentType.equals(ContentType.APPLICATION_XML)) { logger.error("Unexpected content type:" + contentType); return null; } SAXReader saxReader = new SAXReader(); saxReader.setEncoding(Consts.UTF_8.name()); saxReader.setValidation(false); try { return saxReader.read(httpEntity.getContent()); } catch (DocumentException | IOException e) { logger.error("axReader.read exception:" + e.getMessage()); return null; } }}
0 0
- 通过ResponseHandler来处理Http响应
- 使用 Apache ResponseHandler 处理 Http 返回信息
- HttpClient4.x进行Get/Post请求并使用ResponseHandler处理响应
- HttpClient4.x进行Get/Post请求并使用ResponseHandler处理响应
- HttpClient4.x进行Get/Post请求并使用ResponseHandler处理响应
- HttpClient4.x进行Get/Post请求并使用ResponseHandler处理响应
- HttpClient4.x进行Get/Post请求并使用ResponseHandler处理响应
- Servlet处理HTTP响应
- Servlet处理HTTP响应
- servlet处理http响应
- servlet处理http响应
- Scoket 处理HTTP请求响应
- 使用servlet处理HTTP响应
- 使用servlet处理http响应
- 使用Servlet处理HTTP响应
- 使用Servlet处理HTTP响应
- 使用servlet处理http响应
- 使用servlet处理http响应
- Spring MVC启动过程
- WinCE的内存泄露
- 如无必要,勿增压力
- 对c语言系统库函数、堆排序、希尔排序、折半插入排序、快速排序消耗时间的比较
- Windows下Qt 5.2 for Android开发入门
- 通过ResponseHandler来处理Http响应
- 替换空格
- 主宰全球的10大算法
- 高人为他看相:年纪轻轻富贵双全,凭的就是“不邪淫”
- STM32数组越界问题
- Or1200中IMMU使用举例
- makefile有关问题,想像vs一样将目标文件,输出文件存放在指定文件夹,而不是在源文件的目录
- spring获取webapplicationcontext,applicationcontext几种方法详解
- Swift编程语言入门实战系列教程(十一)--- 测测你的名字在古代是什么职位