Http请求小结
1、Http请求:get方式
public void httpGet(String url,Map<String,Object> map) {
try {
String joint = parseMap(map);
if(!TextUtils.isEmpty(url)) {
url = url+"?"+joint;
}
URL newUrl = new URL(url);//创建URL
//打开网络连接
HttpURLConnection conn = (HttpURLConnection)newUrl.openConnection();
conn.setRequestMethod("GET");//设置请求方式
InputStream is = conn.getInputStream();//获取输入流(读取流)
BufferReader reader = new BufferReader(new InputStreamReader(is));
StringBuffer buffer = new StringBuffer();
if(2000 == conn.getResponseCode()) {//判断响应状态
String msg = null;
while(null != (msg = reader.readLine())) {//读取返回数据
buffer.append(msg);
}
}
Log.d("result",buffer.toString());
is.close();//关闭输入流
conn.disconnect();//关闭网络连接
} catch(MalformedURLException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
}
解析传入参数:
public String parseMap(Map<String,Object> map) {
String result = "";
try {
if(null == map) {
return result;
}
for(String key : map.keySet()) {
result = result + key + "=" + URLEncoder.encode(map.get(key).toString(),"UTF-8")+"&";
}
if(!TextUtils.isEmpty(result)) {
result = result.substring(0,result.length() - 1);
}
} catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
return result;
}
2、Http请求 :post方式
关于Content-Type类型特别说明,相关连接http://blog.csdn.net/blueheart20/article/details/45174399
public void httpPost(String url,String jsonObject) {
URL newUrl = null;
try {
if(null == url) {
return;
}
newUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection)newUrl.openConnection();
conn.setRequestMethod("POST");//设置请求方式
conn.setInput(true);//设置允许输入
conn.setOutput(true);//设置允许输出
conn.setConnectTimeout(30000);//设置连接主机超时(单位:毫秒)
conn.setReadTimeout(30000);//设置从主机读取数据超时(单位:毫秒)
conn.setRequestProperty("Content-Type","application/json");//设置请求头体格式
conn.setRequestProperty("Charset","UTF-8");//设置请求体编码
conn.setRequestProperty("Content-Length",String.valueOf(jsonObject.getBytes().length));//设置请求体长度
OutputStream os = conn.getOutputStream();//获取输出流(写入流)
os.write(jsonObject.getBytes());//输出数据
os.flush();
InputStream is = conn.getInputStream();
BufferReader reader = new BufferReader(new InputStreamReader(is));
StringBuffer buffer = new StringBuffer();
String msg = null;
while(null != (msg = reader.readLine())) {
buffer.append(msg);
}
Log.d("result",buffer.toString());
is.close();
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Http请求小结的更多相关文章
- Ajax请求小结
参数说明 ajax请求异步刷新页面=把需要异步刷新的页面单独写成一个.cshtml进行操作$.ajax({}); -------ajax方法.type: ------- 类型,此处为“POST” 还有 ...
- ajax的异步请求小结
如何判断是使用json还是jsp的数据传输: json字符串可以使用js,jquery,ajax,java这几种技术,页面为jsp页面,json数据为java后台传递来. 1.同步请求可以从因特网请求 ...
- postman使用动态token发post请求小结
最近使用postman做接口测试,感觉挺好用的. 测试中,每次post请求都要携带一个token,token是通过get请求得来的,动态变化的,并且token有有效期的限制.为了避免重复获取token ...
- 图解:HTTP 范围请求,助力断点续传、多线程下载的核心原理
题图:by Charles Loyer 一.序 Hi,大家好,我是承香墨影! HTTP 协议在网络知识中占据了重要的地位,HTTP 协议最基础的就是请求和响应的报文,而报文又是由报文头(Header) ...
- PHP实现登录,注册,密码修改
注册,登录,修改密码 1.登录 2.忘记密码 3.免费注册 页面布局 <div id="views" class="views"> <div ...
- 第86节:Java中的JQuery基础
第86节:Java中的JQuery 前言复习 定时器: setInterval clearInterval setTimeout clearTimeout 显示: img.style.display ...
- http 断点续传
一.序 Hi,大家好,我是承香墨影! HTTP 协议在网络知识中占据了重要的地位,HTTP 协议最基础的就是请求和响应的报文,而报文又是由报文头(Header)和实体组成.大多数 HTTP 协议的使用 ...
- 由"跨域"引出的一个终极思想(jsonp)
1.什么是跨域? 当协议.子域名.主域名.端口号中任意一个不相同时,都算作不同域. 跨域并不是请求发不出去,请求能发出去,服务端能收到请求并正常返回结果,但是因为浏览器存在一个"同源策略&q ...
- 笔记67 Spring Boot快速入门(七)
SpringBoot+RESTful+JSON 一.RESTful架构 REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. ...
随机推荐
- Bom部分
Bom部分 browser object model(浏览器对象模型)将浏览器中的各个组件封装成对象,我们可以使用这些对象来操作浏览器的一些动作.封装的规则基于ECMAScriptBom的组成--— ...
- HBuilder打包Android apk 支付不了问题解决
第一步: 安卓生成自有证书:到JRE的bin目录下,运行keytool命令:cd C:\Program Files\Java\jre1.8.0_91\binkeytool -genkey -alias ...
- Java 解压zip压缩包
因为最近项目需要批量上传文件,而这里的批量就是将文件压缩在了一个zip包里,然后读取文件进行解析文件里的内容. 因此需要先对上传的zip包进行解压.以下直接提供代码供参考: 1.第一个方法是用于解压z ...
- CentOS7修改SSH远程连接端口
CentOS7修改SSH远程连接端口
- 一次saltstack环境变量的坑
现场环境: salt-minion端: ip:10.0.3.149 环境:使用 nvm装的nodejs 受用nodejs自带的npm 安装pm2 sal-master端: IP:10.0 ...
- vuex学习笔记
一.vuex的目的 把组件的共享状态抽取出来,以一个全局单例模式管理.在这种模式下,组件树构成了一个巨大的视图,不管在树的哪个位置,任何组件都能获取状态或触发行为. 二.vuex集中式管理数据 安装 ...
- Windows Server 2016-Powershell迁移FSMO角色
上一章节我们讲到了通过Ntdsutil命令行进行FSMO角色迁移,本章开始之前我们先讨论一下有关FSMO角色放置建议: 建议将架构主机角色(Schema Master)和域命名主机角色(Domain ...
- vue 使用Jade模板写html,stylus写css
vue 使用Jade模板写html,stylus写css 日常工作都是使用vue开发页面和webApp,写的多了就想偷懒简化各种书写方式,所以使用了jade写html,stylus写css,省了很多的 ...
- ManagementObjectSearcher Path
为了获取硬件信息,你还需要创建一个ManagementObjectSearcher 对象.ManagementObjectSearcher searcher = new ManagementObjec ...
- Nginx配置参数中文说明
#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debu ...