zoukankan      html  css  js  c++  java
  • 请求网络数据(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();

  • 相关阅读:
    LeetCode-195
    中文屋子与图灵测试谁对?
    leedcode-122
    Java 网络编程
    Java File类与IO流
    Java 异常
    Java 多线程
    Java Collection集合
    Java 常用API (第二部分)
    Java 日期时间与unix时间戳之间转换
  • 原文地址:https://www.cnblogs.com/8023-itxinde/p/5155216.html
Copyright © 2011-2022 走看看