http 网络请求
/**
* 用 HttpClient 的 Get 请求访问服务器
*
* @param url_path
* @param userName
* @param userPass
* @return
*/
private String HttpClientGetMeth(String url_path, String userName,
String userPass) {
String result = "";
try {
url_path = url_path + "?username="
+ URLEncoder.encode(userName, "utf-8") + "&userpass="
+ URLEncoder.encode(userPass, "utf-8");
HttpGet get = new HttpGet(url_path);
HttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, 5 * 1000);
HttpConnectionParams.setSoTimeout(params, 5 * 1000);
HttpClient httpClient = new DefaultHttpClient(params);
HttpResponse response = httpClient.execute(get);
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity resEntity = response.getEntity();
result = EntityUtils.toString(resEntity, "utf-8");
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
/**
* 用 HttpClient 的 Post 请求访问服务器
*
* @param url_path
* @param userName
* @param userPass
* @return
*/
private String HttpClientPostMeth(String url_path, String userName,
String userPass) {
String result = "";
HttpPost post = new HttpPost(url_path);
HttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, 5 * 1000);
HttpConnectionParams.setSoTimeout(params, 5 * 1000);
List<NameValuePair> pair = new ArrayList<NameValuePair>();
pair.add(new BasicNameValuePair("username", userName));
pair.add(new BasicNameValuePair("userpass", userPass));
try {
HttpEntity entity = new UrlEncodedFormEntity(pair, "utf-8");
post.setEntity(entity);
HttpClient httpClient = new DefaultHttpClient(params);
HttpResponse response = httpClient.execute(post);
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity resEntity = response.getEntity();
result = EntityUtils.toString(resEntity, "utf-8");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
/**
* 用 HttpURLConnection 的 Post 请求访问服务器
*
* @param url_path
* @param userName
* @param userPass
* @return
*/
private String URLConnectionPosttMeth(String url_path, String userName,
String userPass) {
String result = "";
// ?username=admin&userpass=123456
try {
URL url = new URL(url_path);
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
conn.setConnectTimeout(5 * 1000);
conn.setReadTimeout(5 * 1000);
conn.setRequestMethod("POST");// 设置请求方式为 Post 方式
conn.setDoInput(true);// 设置是否可以读取
conn.setDoOutput(true);// 设置是否可以写入
DataOutputStream dos = new DataOutputStream(
conn.getOutputStream());
// 把中文进行utf-8编码,服务器通过request.setCharacterEncoding("utf-8");解码
String params = "username="
+ URLEncoder.encode(userName, "utf-8") + "&userpass="
+ URLEncoder.encode(userPass, "utf-8");
dos.write(params.getBytes());
dos.flush();
dos.close();
if (conn.getResponseCode() == 200) {
InputStream is = conn.getInputStream();// 获得输入流对象读取服务器响应结果
// 服务器需要通过response.setCharacterEncoding("utf-8");//设置服务器响应编码为中文编码,为了解决android端接收的数据能不乱码
// 因为有中文乱码,需要转码,通过把字节流转换为缓存字符流,同时设置编码,实现转码
InputStreamReader reader = new InputStreamReader(is,
"utf-8");
char[] buf = new char[1024];
reader.read(buf);
// Log.i("Bright", buf.length + "------post------");
result = new String(buf, 0, buf.length);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
/**
* 用 HttpURLConnection 的 Get 请求访问服务器
*
* @param url_path
* @param userName
* @param userPass
* @return
*/
private String URLConnectionGetMeth(String url_path, String userName,
String userPass) {
String result = "";
// ?username=admin&userpass=123456
try {
// 把中文进行utf-8编码,服务器通过request.setCharacterEncoding("utf-8");解码
url_path = url_path + "?username="
+ URLEncoder.encode(userName, "utf-8") + "&userpass="
+ URLEncoder.encode(userPass, "utf-8");
URL url = new URL(url_path);
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
conn.setConnectTimeout(5 * 1000);
conn.setReadTimeout(5 * 1000);
if (conn.getResponseCode() == 200) {
InputStream is = conn.getInputStream();
// 服务器需要通过response.setCharacterEncoding("utf-8");//设置服务器编码为中文编码,为了解决android端接收的数据能不乱码
// 因为有中文乱码,需要转码,通过把字节流转换为缓存字符流,同时设置编码,实现转码
InputStreamReader reader = new InputStreamReader(is,
"utf-8");
char[] buf = new char[1024];
reader.read(buf);
// Log.i("Bright", buf.length + "------get------");
result = new String(buf, 0, buf.length);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result.trim();
}
http 网络请求的更多相关文章
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- Android之三种网络请求解析数据(最佳案例)
AsyncTask解析数据 AsyncTask主要用来更新UI线程,比较耗时的操作可以在AsyncTask中使用. AsyncTask是个抽象类,使用时需要继承这个类,然后调用execute()方法. ...
- IOS开发之—— 在AFN基础上进行的网络请求的封装
网络请求的思路:如果请求成功的话AFN的responseObject就是解析好的. 1发送网络请求:get/post/或者别的 带上URL,需要传的参数 2判断后台网络状态码有没有请求成功: 3 请求 ...
- Android,适合Restful网络请求封装
借助volley.Gson类库. 优点 网络请求集中处理,返回值直接为预期的对象,不需要手动反序列,提高效率,使用时建立好model类即可. 使用效果 DataProess.Request(true, ...
- Android okHttp网络请求之Json解析
前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...
- 阶段一:通过网络请求,获得并解析JSON数据(天气应用)
“阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 在上一篇阶段一:解析JSON中提到,最近在写一个很简单的天气预报应用.即使功能很简单,但我还是想把它做成一个相对完 ...
- NSURLSession网络请求
个人感觉在网上很难找到很简单的网络请求.或许是我才疏学浅 , 所有就有了下面这一段 , 虽然都是代码 , 但是全有注释 . //1/获取文件访问路径 NSString *path=@"ht ...
- 【Swift】Alamofile网络请求数据更新TableView的坑
写这篇BLOG前,有些话不得不提一下,就仅当发发恼骚吧... 今天下午为了一个Alamofire取得数据而更新TableView的问题,查了一下午的百度(360也是见鬼的一样),竟然没有一个简单明了的 ...
- 【WP8.1】HttpClient网络请求、进度以及终止
工作这么长时间,起初还是喜欢用面向程序过程的思路去写代码. 慢慢的才会用面向对象的思路分析.解决问题.也算是一点点进步吧. 最近在做一个下载音乐的功能.用到了HttpClient类. 于是就简单的写了 ...
- ios htttp网络请求cookie的读取与写入(NSHTTPCookieStorage)
当你访问一个网站时,NSURLRequest都会帮你主动记录下来你访问的站点设置的Cookie,如果 Cookie 存在的话,会把这些信息放在 NSHTTPCookieStorage 容器中共享,当你 ...
随机推荐
- mysql数据库的主从
1. Slave 上面的IO线程连接上 Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容; 2. Master 接收到来自 Slave 的 IO 线程的请求后,通过负责 ...
- HTML随学随机
1.2D坐标系由X轴个y轴构成.其中,笛卡尔坐标系是最常见的2D坐标系. 2.HTML5 canvas2D坐标系: (1)canvas坐标原点:左上角. (2)canvas的x与y轴方向: (I)x轴 ...
- wex5 教程 之 图文讲解 全局可观察变量与登陆状态全局控制
一 先说说,这两个概念是什么意思 全局可观察变量?没听说过,只听过全局变量,那你out了,因为我要充分发挥绑定技术来控制页面部局,组件的隐藏与显示,文字内容,样式改变.看我博文大家知道,我想用绑定技术 ...
- IsBackground的理解
1.当在主线程中创建了一个线程,那么该线程的IsBackground默认是设置为FALSE的. 2.当主线程退出的时候,IsBackground=FALSE的线程还会继续执行下去,直到线程执行结束. ...
- 初识Python第三天(二)
2.2 OrderedDict有序字典 import collections dic = collections.OrderedDict() dic['k1'] = 'v1' dic['k2'] = ...
- 第一册解说and表现
综合日语第一册第五单元到十五单元的解说表现大集会:(这么一来一本书都被我搬上来啦--) 第五课 1.始めました: 初次见面时的寒暄用语,表示“初次见面(请多多观照)”之意. 2.どうぞよろしく: 用于 ...
- 什么是 HTML?
前言 在 W3C(万维网联盟)官网里,有一套针对于初学者的 HTML 培训教程,为期四周.为了提升自己的翻译水平,同时帮助大家入门,我给大家翻译出来,以供参考. 1. 什么是 HTML HTML 是创 ...
- 嵌入式之Linux系统裁剪和定制---(kernel+busyboxy+dropbear+nginx)
本文将介绍通过完全手动定制内核,在此基础上添加 busybox ,并实现远程登陆,使裁剪的 linux 能够运行 nginx . 在此之前介绍一下 linux 系统的启动流程. linux系统启动流程 ...
- R----Shiny包介绍学习
为什么用Shiny Shiny让数据分析师写完分析与可视化代码后,稍微再花几十分钟,就可以把分析代码工程化,将分析成果快速转化为交互式网页分享给别人.所以,如果你是一名使用R的数据分析师,选择Shin ...
- 单调队列 hdu2823
Sliding Window Time Limit: 12000MS Memory Limit: 65536K Total Submissions: 48608 Accepted: 14047 ...