Get方式请求并获取XML数据格式
来源:互联网 发布:mac上如何查找app路径 编辑:程序博客网 时间:2024/05/18 00:23
package cn.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.URI;import java.net.URISyntaxException;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.log4j.Logger;import org.apache.log4j.PropertyConfigurator;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import cn.utils.xmlUtils;public class WriteResponse2XML{public static void main(String[] args) throwsURISyntaxException, ClientProtocolException, IOException, DocumentException{//Get请求的参数final String URL = "http://search.ifeng.com/searchxml";final String PARAM = "q=三星&df=2013-7-1&n=3";//XML文件输出的位置final String FILE_PATH = "./XML/response.xml";//初始化log4jLogger log = Logger.getLogger(WriteResponse2XML.class);PropertyConfigurator.configure("./conf/log4j.properties");HttpClient httpClient = new DefaultHttpClient();//Get请求HttpGet httpGet = new HttpGet(URL);//拼装字符串httpGet.setURI(new URI(httpGet.getURI().toString()+"?"+PARAM));//System.out.println(new URI(httpGet.getURI().toString()));//发请求HttpResponse response = httpClient.execute(httpGet);if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {HttpEntity entity = response.getEntity();BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent(),"UTF-8"));//将获取的response写入到xml文件中(不是必要步骤)Document document = xmlUtils.getDocument(br);xmlUtils.document2XML(document, FILE_PATH);//解析XML文件,并验证其中的关键值Element rootElement = document.getRootElement();//获取list节点,验证参数n是否正确List<Element> list = rootElement.elements("item");if(3 == list.size()) {log.info("请求中参数n=3,也就是每页有3条记录。实际返回的response中也是每页有3条记录。");}else {log.info("请求中参数n=3,也就是每页有3条记录。实际返回的response中也是每页有"+list.size()+"条记录,与请求参数不符");}for(int i=0; i<list.size(); i++) {String title = list.get(i).element("Doc_Title").getText();//System.out.println(title);//验证参数q是否正确,q是查找的关键字if(title.contains("三星")) {log.info("请求中参数q=三星,也就查找的关键字。实际返回的第"+(i+1)+"条记录中包含该关键字。");}else {log.info("第"+(i+1)+"条记录中没有包含该关键字");}}}else {log.error("请求失败,状态码为:"+response.getStatusLine().getStatusCode());}httpClient.getConnectionManager().shutdown();}}
返回的response
<?xml version="1.0" encoding="UTF-8"?><list> <numFound>34,161</numFound> <max_page>11,387</max_page> <QTime>343</QTime> <item> <Doc_Date><![CDATA[2012-03-21]]></Doc_Date> <Doc_Title><![CDATA[宁波三星电气股份有限公司关于重大经营合同中标的提示性公告]]></Doc_Title> <Doc_Url><![CDATA[http://finance.ifeng.com/roll/20120321/5779454.shtml]]></Doc_Url> </item> <item> <Doc_Date><![CDATA[2012-03-21]]></Doc_Date> <Doc_Title><![CDATA[时尚潮流造型 小巧安卓机 三星I579再爆新低]]></Doc_Title> <Doc_Url><![CDATA[http://tech.ifeng.com/digi/mobile/price/detail_2012_03/21/13329289_0.shtml]]></Doc_Url> </item> <item> <Doc_Date><![CDATA[2012-03-21]]></Doc_Date> <Doc_Title><![CDATA[ST三星:独立董事关于控股股东及其他关联方占用资金情况的说明及独立意见]]></Doc_Title> <Doc_Url><![CDATA[http://finance.ifeng.com/stock/gsgg/20120321/5777632.shtml]]></Doc_Url> </item> </list>
- Get方式请求并获取XML数据格式
- 请求网络 获取数据格式
- oauth2添加get请求方式获取token
- OKhttp get同步请求方式 获取数据
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- Java 与 PHP 发送get请求并获取远程内容
- request请求获取参数(post和get两种方式)
- NodeJs获取请求参数的方法(get方式)
- request请求获取参数(post和get两种方式)
- JavaScript获取get方式的请求参数值
- RxVolley进行网络请求(get方式),获取json数据
- ajax get方式请求
- springmvc接收xml数据格式请求详解
- 从请求中获取xml内容并解析成map
- get方式数据获取
- requests get 请求解析xml
- 程序逻辑题, 坑爹的题呀.
- 调用底层的viewController--返回底层
- iMatrix平台提供了层次分明的MVC多层结构
- 【Java中将JSON格式的数据转换成对应的Bean、Map、List数据】
- httpClient download file(爬虫)
- Get方式请求并获取XML数据格式
- GDB调试多进程的fork+exec
- 那位大神能给注释下这个程序?感激不尽。
- hibernate 3.x ----随写
- 为欧元区经济好转提供了证据
- UIImagePickerController
- android判断网络状态
- Android组合控件EditText
- Android开发中如何解决加载大图片时内存溢出的问题