博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
httpclient
阅读量:7142 次
发布时间:2019-06-28

本文共 4449 字,大约阅读时间需要 14 分钟。

/*     * 使用httpClient提交get请求     */    public void testClientGet(View v) {        //1. 显示ProgressDialog        final ProgressDialog dialog = ProgressDialog.show(this, null, "正在请求中...");        //2. 启动分线程        new Thread(){            //3. 在分线程, 发送请求, 得到响应数据            public void run() {                try {                    //1). 得到path, 并带上参数name=Tom1&age=11                    String path = et_network_url.getText().toString()+"?name=Tom3&age=13";                                        //2). 创建HttpClient对象                    HttpClient httpClient = new DefaultHttpClient();                    //3). 设置超时                    HttpParams params = httpClient.getParams();                    HttpConnectionParams.setConnectionTimeout(params, 5000);                    HttpConnectionParams.setSoTimeout(params, 5000);                    //4). 创建请求对象                    HttpGet request = new HttpGet(path);                    //5). 执行请求对象, 得到响应对象                    HttpResponse response = httpClient.execute(request);                                        int statusCode = response.getStatusLine().getStatusCode();                    if(statusCode==200) {                        //6). 得到响应体文本                        HttpEntity entity = response.getEntity();                        final String result = EntityUtils.toString(entity);                        //4. 要主线程, 显示数据, 移除dialog                        runOnUiThread(new Runnable() {                            @Override                            public void run() {                                et_network_result.setText(result);                                dialog.dismiss();                            }                        });                    }                    //7). 断开连接                    httpClient.getConnectionManager().shutdown();                } catch (Exception e) {                    e.printStackTrace();                    //如果出了异常要移除dialog                    dialog.dismiss();                }            }        }.start();    }    /*     * 使用httpClient提交post请求     */    public void testClientPost(View v) {        //1. 显示ProgressDialog        final ProgressDialog dialog = ProgressDialog.show(this, null, "正在请求中...");        //2. 启动分线程        new Thread(){            //3. 在分线程, 发送请求, 得到响应数据            public void run() {                try {                    //1). 得到path                    String path = et_network_url.getText().toString();                                        //2). 创建HttpClient对象                    HttpClient httpClient = new DefaultHttpClient();                    //3). 设置超时                    HttpParams params = httpClient.getParams();                    HttpConnectionParams.setConnectionTimeout(params, 5000);                    HttpConnectionParams.setSoTimeout(params, 5000);                    //4). 创建请求对象                    HttpPost request = new HttpPost(path);                    //设置请求体                    List
parameters = new ArrayList
(); parameters.add(new BasicNameValuePair("name", "Tom4")); parameters.add(new BasicNameValuePair("age", "14")); HttpEntity entity = new UrlEncodedFormEntity(parameters); request.setEntity(entity); //5). 执行请求对象, 得到响应对象 HttpResponse response = httpClient.execute(request); int statusCode = response.getStatusLine().getStatusCode(); if(statusCode==200) { //6). 得到响应体文本 entity = response.getEntity(); final String result = EntityUtils.toString(entity); //4. 要主线程, 显示数据, 移除dialog runOnUiThread(new Runnable() { @Override public void run() { et_network_result.setText(result); dialog.dismiss(); } }); } //7). 断开连接 httpClient.getConnectionManager().shutdown(); } catch (Exception e) { e.printStackTrace(); //如果出了异常要移除dialog dialog.dismiss(); } } }.start(); }

 

转载于:https://www.cnblogs.com/znsongshu/p/9345868.html

你可能感兴趣的文章
数字对讲系统开发札记(前端linux c 后端 c#)
查看>>
海外共享公寓品牌Tripalink完成A轮融资,险峰长青领投
查看>>
阿里在使用一种更灵活的软件集成发布模式
查看>>
自己实现一个StringBuffer
查看>>
SpringBoot使用Nacos配置中心
查看>>
星矿科技完成千万元融资,专注明星IP价值商业化
查看>>
SOP 1.2.0 发布,开放平台解决方案项目
查看>>
Element 2.6.3 发布,基于 Vue 2.0 的桌面端组件库
查看>>
丰田研发智能汽车FV2,可利用肢体进行操控
查看>>
基于kubeadm的kubernetes高可用集群部署
查看>>
定位「数字化助手」,腾讯想用服务创新助力产业智慧升级
查看>>
golang之sync.Mutex互斥锁源码分析
查看>>
SAP增强的PA教材内容
查看>>
jQuery系列 第八章 jQuery框架Ajax模块
查看>>
OpenCV中原始图像加载与保存压缩技巧
查看>>
MySQL 8复制性能的增强
查看>>
C#使用Xamarin开发可移植移动应用(3.Xamarin.Views控件)附源码
查看>>
Java 模拟基于UDP的Socket通信
查看>>
我要做 Android 之Fragment
查看>>
有关 Windows Lite 的一切,只为对抗 Chrome OS?
查看>>