请求网络数据(4种方式)

public class MyUtil {

    // 判断网络是否开通

    public static boolean isAvailable(Context context) {

        // 获取网络管理者
        ConnectivityManager manager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);

        // 获取网络情况
        NetworkInfo info = manager.getActiveNetworkInfo();
        if (!info.isAvailable() || info == null) {
            return false;
        }

        return true;

    }

    /**
     * get请求对象
     * @param url
     * @param name
     * @param pass
     * @return
     */
    public static String getData(String url, String name, String pass) {
        String data = "";
        StringBuffer sb = new StringBuffer(url);
        sb.append("?username=" + name);
        sb.append("&userpass=" + pass);
        // 创建与服务器的连接
        try {
            URL setUrl = new URL(sb.toString());
            // 打开连接
            HttpURLConnection con = (HttpURLConnection) setUrl.openConnection();

            // 设置连接超时的容忍的时间
            con.setConnectTimeout(5000);
            // 设置读取请求的时间
            con.setReadTimeout(5000);

            // 判断响应是否成功
            if (con.getResponseCode() == 200) {
                // 读取响应的数据,(将字节流转化为缓冲流)
                BufferedReader br = new BufferedReader(new InputStreamReader(
                        con.getInputStream()));

                // 读取数据
                data = br.readLine();
            }

        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return data;
    }

    /**
     * post请求对象
     * @param url
     * @return
     */
    public static String getDataBypost(String url,String name,String pass) {

        String data="";
        // 创建与服务器的连接对象
        try {
            URL u = new URL(url);
            // 打开连接
            HttpURLConnection open = (HttpURLConnection) u.openConnection();
            
            // 设置连接的容忍时间
            open.setConnectTimeout(5000);
            // 设置读取请求的时间
            open.setReadTimeout(5000);


            //设置请求的方法
            open.setRequestMethod("POST");
            //设置是否可以输入输出数据
            open.setDoInput(true);
            open.setDoOutput(true);
            //传递参数
            DataOutputStream dos = new DataOutputStream(open.getOutputStream());
            
            String str="username="+name+"&userpass="+pass;
        
            dos.write(str.getBytes());
            dos.flush();

            
            // 判断请求是否响应成功
            if (open.getResponseCode() == 200) {
                // 响应成功,获取响应的数据
                BufferedReader br = new BufferedReader(new InputStreamReader(
                        open.getInputStream()));
                
                 data= br.readLine();
                
                 System.out.println(data+"++++++++++++++++++====");

            }
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return data;
    }
    
    public static String getdataByClient(String url,String name,String pass)
    {
        String data="";
        //创建请求对象
        HttpPost post=new HttpPost(url);
        
        //设置请求参数
        HttpParams params=new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(params, 5000);
        HttpConnectionParams.setSoTimeout(params, 5000);
        
        //传递参数
        ArrayList<NameValuePair> list = new ArrayList<NameValuePair>();
        BasicNameValuePair p1 = new BasicNameValuePair("username", name);
        BasicNameValuePair p2 = new BasicNameValuePair("userpass", pass);
        list.add(p1);
        list.add(p2);
        //设置参数的类型Entity
        try {
            HttpEntity en=new UrlEncodedFormEntity(list,"utf-8");
            
            //将数据添加到请求上面
            post.setEntity(en);
        } catch (UnsupportedEncodingException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        
        
        //创建执行请球的对象
        HttpClient client=new DefaultHttpClient(params);
        
        //执行请求
        try {
            HttpResponse resp = client.execute(post);
            //判断是否响应成功
            if(resp.getStatusLine().getStatusCode() == 200)
            {
                //获取响应的数据
                HttpEntity entity = resp.getEntity();
                //转换数据的类型
                 data= EntityUtils.toString(entity, "utf-8");
            }
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return data;
    }

}

 

2、将entity对象转化为数据流

InputStream is=entity.getContent();

你可能感兴趣的:(请求网络数据(4种方式))