安卓开发网络数据请求

1将访问的路径转换成URL。

URL url = new URL(path);

2,通过URL获取连接。

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

3,设置请求方式

conn.setRequestMethod("GET");

4,设置连接超时时间

conn.setConnectTimeout(5000);

5,设置读取时间

conn.setConnectTimeout(5000);

6,设置请求头的信息。

conn.setRequestProperty(User-Agent, Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0));

7,获取响应码

if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
             InputStream  is = conn.getInputStream();
            }

8,请求码200,表明请求成功,获取返回内容的输入流

/**

     * 将输入流转换成字符串

     *

     * @param is

     *            从网络获取的输入流

     * @return

     */

    public static String streamToString(InputStream is) {

        try {

            ByteArrayOutputStream baos = new ByteArrayOutputStream();

            byte[] buffer = new byte[1024];

            int len = 0;

            while ((len = is.read(buffer)) != -1) {

                baos.write(buffer, 0, len);

            }

            baos.close();

            is.close();

            byte[] byteArray = baos.toByteArray();

            return new String(byteArray);

        } catch (Exception e) {

            Log.e(tag, e.toString());

            return null;

        }

    }

  HttpUrlConnection

/**

     * 通过HttpUrlConnection发送GET请求

     *

     * @param username

     * @param password

     * @return

     */

    public static String loginByGet(String username, String password) {

        String path = http://192.168.0.107:8080/WebTest/LoginServerlet?username= + username + &password= + password;

        try {

            URL url = new URL(path);

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();

            conn.setConnectTimeout(5000);

            conn.setRequestMethod(GET);

            int code = conn.getResponseCode();

            if (code == 200) {

                InputStream is = conn.getInputStream(); // 字节流转换成字符串

                return StreamTools.streamToString(is);

            } else {

                return 网络访问失败;

            }

        } catch (Exception e) {

            e.printStackTrace();

            return 网络访问失败;

        }

/**

     * 通过HttpUrlConnection发送POST请求

     *

     * @param username

     * @param password

     * @return

     */

    public static String loginByPost(String username, String password) {

        String path = http://192.168.0.107:8080/WebTest/LoginServerlet;

        try {

            URL url = new URL(path);

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();

            conn.setConnectTimeout(5000);

            conn.setRequestMethod(POST);

            conn.setRequestProperty(Content-Type, application/x-www-form-urlencoded);

            String data = username= + username + &password= + password;

            conn.setRequestProperty(Content-Length, data.length() + );

            // POST方式,其实就是浏览器把数据写给服务器

            conn.setDoOutput(true); // 设置可输出流

            OutputStream os = conn.getOutputStream(); // 获取输出流

            os.write(data.getBytes()); // 将数据写给服务器

            int code = conn.getResponseCode();

            if (code == 200) {

                InputStream is = conn.getInputStream();

                return StreamTools.streamToString(is);

            } else {

                return 网络访问失败;

            }

        } catch (Exception e) {

            e.printStackTrace();

            return 网络访问失败;

        }

    }

HttpClient

/**

     * 通过HttpClient发送GET请求

     *

     * @param username

     * @param password

     * @return

     */

    public static String loginByHttpClientGet(String username, String password) {

        String path = http://192.168.0.107:8080/WebTest/LoginServerlet?username=

                + username + &password= + password;

        HttpClient client = new DefaultHttpClient(); // 开启网络访问客户端

        HttpGet httpGet = new HttpGet(path); // 包装一个GET请求

        try {

            HttpResponse response = client.execute(httpGet); // 客户端执行请求

            int code = response.getStatusLine().getStatusCode(); // 获取响应码

            if (code == 200) {

                InputStream is = response.getEntity().getContent(); // 获取实体内容

                String result = StreamTools.streamToString(is); // 字节流转字符串

                return result;

            } else {

                return 网络访问失败;

            }

        } catch (Exception e) {

            e.printStackTrace();

            return 网络访问失败;

        }

    }

/**

     * 通过HttpClient发送POST请求

     *

     * @param username

     * @param password

     * @return

     */

    public static String loginByHttpClientPOST(String username, String password) {

        String path = http://192.168.0.107:8080/WebTest/LoginServerlet;

        try {

            HttpClient client = new DefaultHttpClient(); // 建立一个客户端

            HttpPost httpPost = new HttpPost(path); // 包装POST请求

            // 设置发送的实体参数

            List<namevaluepair> parameters = new ArrayList<namevaluepair>();

            parameters.add(new BasicNameValuePair(username, username));

            parameters.add(new BasicNameValuePair(password, password));

            httpPost.setEntity(new UrlEncodedFormEntity(parameters, UTF-8));

            HttpResponse response = client.execute(httpPost); // 执行POST请求

            int code = response.getStatusLine().getStatusCode();

            if (code == 200) {

                InputStream is = response.getEntity().getContent();

                String result = StreamTools.streamToString(is);

                return result;

            } else {

                return 网络访问失败;

            }

        } catch (Exception e) {

            e.printStackTrace();

            return 访问网络失败;

        }

    }</namevaluepair></namevaluepair>

时间: 2024-10-16 04:59:27

安卓开发网络数据请求的相关文章

iOS开发网络数据之AFNetworking使用

iOS开发网络数据之AFNetworking使用 如何选择AFNetworking版本 首先得下载AFNetworking库文件,下载时得首先弄清楚,你将要开发的软件兼容的最低版本是多少.AFNetworking 2.0或者之后的版本需要xcode5.0版本并且只能为IOS6或更高的手机系统上运行,如果开发MAC程序,那么2.0版本只能在MAC OS X 10.8或者更高的版本上运行. AFNetworking 2.0的下载地址https://github.com/AFNetworking/AF

安卓开发_数据存储技术_sqlite

一.SQLite SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了.SQLite已经被多种软件和产品使用 二.SQLite特性 1 2 1.轻量级 3 SQLite和C\S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器.使用SQLite一般只需要带上它的一个动态库,就可以享受它的全部功能.而且那个动态库的尺寸也相当小. 4 2.独立性 5 SQLite数据库的核心引擎本身

网络数据请求-封装思想总结

1.  网络数据请求-封装请求 调用的开发者  1.创建这个网络对象(httpRequest) 2.在该ViewController类里遵循协议 3.实现协议中的方法 封装的开发者  1.根据NSURLConnection异步的方法进行封装, 创建url对象,保留delegate 最后发送异步请求  2.让封装的类遵循协议(NSURLConnectionDataDelegate)  3.让封装的类(QDLHttpRequest)去实现该协议中的方法(4个)

swift网络数据请求方法

搭建一个apache服务器,用php编写一个返回给客户端请求数据的脚本 1 <?php 2 // header("Content-type:text/html;charset=utf-8"); 3 header("Content-type:text/json;charset=utf-8"); 4 if (isset($_REQUEST['name'])) { 5 $result = $_REQUEST['name']; 6 $arr=array("r

iOS经验1:自己写的网络数据请求 第三方框架 断点续传 上传下载

镔哥哥做项目,一般的数据请求不管他多复杂,只要自己写好了请求,那么调用永远是那么的简单,那么我介绍一下 一:需要用到第三方框架AFNetworking,直接写在工程pch头文件里就行因为经常用到它,这在网上随便下载就行,最好用cocopod来下载,这样什么都有了,cocopod是什么,我就不说,博客上面有介绍. 开始啦: 1:自定义网络请求DataRequestManager类专门管理网络用的 朋友们以下代码就可以直接复制来用了 .h文件 //  DataRequestManager.h // 

iOS开发网络数据之AFNetworking使用1

链接地址:http://blog.csdn.net/daiyelang/article/details/38421341 如何选择AFNetworking版本 官网下载2.5版本:http://afnetworking.com/ 此文章基于AFNetworking2.0,如果您使用的是2.5版本的,请看这篇文章:AFNetworking2.5使用 首先得下载AFNetworking库文件,下载时得首先弄清楚,你将要开发的软件兼容的最低版本是多少.AFNetworking 2.0或者之后的版本需要

IOS开发网络数据---- AFNetworking的使用

http网络库是集XML解析,Json解析,网络图片下载,plist解析,数据流请求操作,上传,下载,缓存等网络众多功能于一身的强大的类库.最新版本支持session,xctool单元测试.网络获取数据一直是手机软件的重中之重,如果处理的不好,会造成很差的用户体验.随着ASIHTTPRequest的停止更新,更换网络库是必然的事情,AFNetworking就是很好的替代品.而且都是轻量级,不要担心加入太多库会多软件性能有影响. 1.为什么用第三方网络库?先说如果不用网络库,我曾有一次觉得什么都用

iOS开发网络数据(AFNetWorking使用)

使用AFNetWorking之前要先下载 官网下载2.5版本:http://afnetworking.com/ 下载完成后先导入 然后导入 #import "AFHTTPRequestOperationManager.h" 开始解析数据:JSON方式获取数据 //利用第三方AFNetWorking解析数据 - (void)stringWithFormat:(NSString *)url { AFHTTPRequestOperationManager *manager = [AFHTTP

网络数据请求

1.同步:在同一个时间点,只可以做一件事情 2.异步:在同一个时间点,可以同时做多件事情 比较同步和异步 1.当下载的数据比较小的时候使用同步,反之使用异步 2.需要上传数据的时候使用异步,例如:上传图片 3.一般情况下(排除网速等物理环境影响),异步的效率比同步效率要高 1.使用NSString直接下载数据(同步) 1.拿到网址(字符串) NSString *path = [NSString stringWithFormat:@"http://10.0.8.8/sns/my/user_list