用HttpUrlconnection解析

package com.bwie.test;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;

import android.content.res.XmlResourceParser;
import android.util.Log;
import android.util.Xml;

//请求
public class Httputil {
    private static String path="http://www.sciencenet.cn/xml/iphoneInterface.aspx?type=news&nums=20&pass=";
    private static InputStream is;
    private static List<dat> list;
    public static InputStream readfiels(){
        
        try {
            URL url=new URL(path);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        //设置请求方式
            connection.setRequestMethod("GET");
            //直连
            connection.connect();
            int code = connection.getResponseCode();            
            if(code==200){
                //输入流
                return connection.getInputStream();
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        return null;
        
    }


public static List<dat> parse() throws Exception {
    //获得读取的输入流
        is = Httputil.readfiels();
        //创建pull对象
        XmlPullParser p = Xml.newPullParser();
        //为pull设置解析 的输入流
        p.setInput(is,"utf-8");
        //新建对象
        dat b=null;
        //得到xml标签的type类型
        int type = p.getEventType();
        
        while(type!=XmlResourceParser.END_DOCUMENT){
            //得到标签的名字
            String name = p.getName();    
            
            switch (type) {
            case XmlResourceParser.START_DOCUMENT:
                list = new ArrayList<dat>();
            break;
            case XmlResourceParser.START_TAG:
            //开始标签为item时 创建对象
                if("item".equalsIgnoreCase(name)){
                   b=new dat();    
                }else if("title".equalsIgnoreCase(name)){
                    b.title=p.nextText();
                }else if("link".equalsIgnoreCase(name)){
                    b.link=p.nextText();
                }else if("imgs".equalsIgnoreCase(name)){
                    b.imgs=p.nextText();
                }else if("copyright".equalsIgnoreCase(name)){
                    b.copyright=p.nextText();
                }
                else if("pubDate".equalsIgnoreCase(name)){
                    b.pubDate=p.nextText();
                }
                
            break;
            case XmlResourceParser.END_TAG:
            //结束标签
                if("item".equalsIgnoreCase(name)){
                    list.add(b);
                }
            break;
            }
            //遍历下一个type
            type=p.next();
        }
        Log.e("lsit",list.toString());
        return list;
    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HttpURLConnection是Java中用于发送HTTP请求的标准类,它可以发送GET、POST等请求,并获取响应结果。我们可以通过以下代码来获取HTTP响应的结果: ```java URL url = new URL("http://www.example.com"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); int responseCode = conn.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { InputStream inputStream = conn.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line; StringBuilder result = new StringBuilder(); while ((line = reader.readLine()) != null) { result.append(line); } reader.close(); inputStream.close(); conn.disconnect(); // 解析响应结果 String response = result.toString(); // ... } ``` 上面的代码中,我们首先创建一个URL对象,然后使用openConnection方法获取HttpURLConnection对象,并设置请求方法为GET。接着,我们调用getResponseCode方法获取HTTP响应状态码,如果状态码为200,则表示请求成功,可以通过getInputStream方法获取响应结果的输入流。 我们通过一个BufferedReader对象读取输入流中的数据,并将其拼接到一个StringBuilder对象中,最终通过调用toString方法获取响应结果的字符串形式。在获取完响应结果后,我们需要关闭输入流、断开HTTP连接,并对响应结果进行解析和处理。具体的解析方法根据响应结果的格式和内容而定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值