請求網絡數據(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();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM