HttpURLConnection为javaAPI提供的一种Rest访问的方式。其支持对Post,Delete,Get,Put等方式的访问。
以下为对于HttpURLConnection对Post等方式访问的一段代码。
view plaincopy to clipboardprint?
package com.jago.cdn.util;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
public class URLConnectionUtil {
private static final String SERVLET_POST = "POST" ;
private static final String SERVLET_GET = "GET" ;
private static final String SERVLET_DELETE = "DELETE" ;
private static final String SERVLET_PUT = "PUT" ;
private static String prepareParam(Map<String,Object> paramMap){
StringBuffer sb = new StringBuffer();
if(paramMap.isEmpty()){
return "" ;
}else{
for(String key: paramMap.keySet()){
String value = (String)paramMap.get(key);
if(sb.length()<1){
sb.append(key).append("=").append(value);
}else{
sb.append("&").append(key).append("=").append(value);
}
}
return sb.toString();
}
}
public static void doPost(String urlStr,Map<String,Object> paramMap ) throws Exception{
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod(SERVLET_POST);
String paramStr = prepareParam(paramMap);
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
os.write(paramStr.toString().getBytes("utf-8"));
os.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line ;
String result ="";
while( (line =br.readLine()) != null ){
result += "/n"+line;
}
System.out.println(result);
br.close();
}
public static void doGet(String urlStr,Map<String,Object> paramMap ) throws Exception{
String paramStr = prepareParam(paramMap);
if(paramStr == null || paramStr.trim().length()<1){
}else{
urlStr +="?"+paramStr;
}
System.out.println(urlStr);
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod(SERVLET_GET);
conn.setRequestProperty("Content-Type","text/html; charset=UTF-8");
conn.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line ;
String result ="";
while( (line =br.readLine()) != null ){
result += "/n"+line;
}
System.out.println(result);
br.close();
}
public static void doPut(String urlStr,Map<String,Object> paramMap) throws Exception{
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod(SERVLET_PUT);
String paramStr = prepareParam(paramMap);
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
os.write(paramStr.toString().getBytes("utf-8"));
os.close();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line ;
String result ="";
while( (line =br.readLine()) != null ){
result += "/n"+line;
}
System.out.println(result);
br.close();
}
public static void doDelete(String urlStr,Map<String,Object> paramMap) throws Exception{
String paramStr = prepareParam(paramMap);
if(paramStr == null || paramStr.trim().length()<1){
}else{
urlStr +="?"+paramStr;
}
System.out.println(urlStr);
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod(SERVLET_DELETE);
if(conn.getResponseCode() ==200){
System.out.println("成功");
}else{
System.out.println(conn.getResponseCode());
}
}
public static void main(String[] args) throws Exception{
String urlStr = "http://localhost:8080/SwTest/ReceiveDataServlet";
Map<String,Object> map = new HashMap<String,Object>();
map.put("username","张三");
map.put("password","88888");
// URLConnectionUtil.doGet(urlStr, map);
// URLConnectionUtil.doPost(urlStr, map);
// URLConnectionUtil.doPut(urlStr, map);
URLConnectionUtil.doDelete(urlStr, map);
}
}
- 浏览: 521076 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
c7887qin:
貌似还要使用相同的证书进行签名。。。
Android - 如何将两个/多个应用放到一个进程中去? -
北极光之吻:
天天向上1989 写道不是有OnDoubleTapListen ...
android实现双击事件监听 -
nielong123:
nielong123 写道onCheckedChanged(M ...
Android RadioGroup 换行, 支持多行多列 -
nielong123:
onCheckedChanged(MultiRadioGrou ...
Android RadioGroup 换行, 支持多行多列 -
zk_Ming:
zk_Ming 写道我用了你的,但是radiogroup 点击 ...
Android RadioGroup 换行, 支持多行多列
基本HTTP请求回顾
- 博客分类:
- JAVA
发表评论
-
Android 修改Android签名证书keystore的密码、别名alias以及别名的密码
2015-04-27 10:35 1149转载请注明出处:http://blog.csdn.net/ ... -
Android签名验证简介
2014-05-16 10:15 5345Android原生自带了个安装器(packages\apps ... -
正则表达式大全
2014-03-18 17:05 942正则表达式匹配网址: (https://[\w]*.|http ... -
正则表达式大全
2014-03-18 16:53 0正则表达式匹配网址: (https://[\w]*.|http ... -
jni jstring 、char* 类型的转换
2014-03-06 18:20 810jni jstring 、char* 类型的转换 //jst ... -
基于 Android NDK 的学习之旅-----资源释放
2014-01-11 14:37 1099转载于http://www.cnblogs.com ... -
Android系统手机端抓包方法
2013-06-25 11:42 979抓包准备 1. Android手机需要先获得root权限。 ... -
Android捕获异常
2013-04-03 14:52 1008如果有些异常是运行时异常,你无法捕获,但是又不想让程序 ... -
JAVA比较器报错:Comparison method violates its general contract
2013-02-05 13:03 13817java.lang.IllegalArgumentExcept ... -
java.lang.IllegalStateException: tried to write 1544 bytes with content-length
2013-01-31 14:57 1383上传文件时,content-length定义的长度小于 ... -
Javadoc生成方法
2013-01-23 14:30 1027方法1:在eclipse中生成 ... -
eclipse 开导入android 第三方jar包java heap space问题解决
2013-01-22 17:25 2493最近做android应用需要使用第三方的jar包,结果导入到e ... -
Java MD5加密
2012-12-03 15:01 871import java.security.*; imp ... -
解决android网络异常java.net.SocketException: Bad address family
2012-10-22 11:28 3208在Android系统中进行网络开发时,如果使用了java.ni ... -
怎么让JButton的大小适应图片的大小
2012-10-09 18:36 4377可以自己来设置大小: ImageIcon icon = new ... -
Android开发进阶之NIO非阻塞包(八)
2012-09-25 15:59 0在整个DDMS中体现Android NIO主要框架的要数Mon ... -
Android开发进阶之NIO非阻塞包(七)
2012-09-25 15:58 0今天我们继续就Android DDMS源码一起分析NIO非阻塞 ... -
Android开发进阶之NIO非阻塞包(六)
2012-09-25 15:58 0有关Android NIO的相关内容,本次Android123 ... -
Android开发进阶之NIO非阻塞包(五)
2012-09-25 15:56 1026有关Android NIO的注意点和重点今天Android12 ... -
Android开发进阶之NIO非阻塞包(四)
2012-09-25 15:55 1079今天我们通过一个实例详细讲解下Android下NIO非阻塞服务 ...
相关推荐
http协议之请求协议 http协议之响应协议1 http协议之响应协议2 css的四种引入方式 css的基本选择器 css的属性选择器和伪类 css的属性操作(一) css的属性操作(二) 外边距和内边距 ....... 3 python全栈开发web框架篇...
1.5 HTTP请求 9 1.5.1 请求方法 10 1.5.2 安全的请求方法 11 1.5.3 幂等的请求方法 11 1.5.4 浏览器对请求方法的支持 11 1.5.5 请求首部 12 1.6 HTTP响应 13 1.6.1 响应状态码 13 ...
前情回顾 1.httpserver (HTTP协议) * 从浏览器接收连接 * 接收请求内容,打印请求内容 * 组织响应内容 * 将内容以HTTP协议的格式回发给客户端 2. IO模型 阻塞IO : 默认的IO形态, 效率低 非阻塞IO 非阻塞...
03 Django请求生命周期之Http请求 04 Django请求生命周期之FBV和CBV 05 Django请求生命周期之CBV扩展 06 瞎扯淡 07 Django请求生命周期之响应内容 08 学员管理示例:数据库设计 09 学员管理示例:班级管理 10 学员...
9-10 7.http协议深度剖析①-http请求详解 防盗链技术 9-13 0.回顾 9-13 1.http协议深度剖析②-http响应详解(302 304码运用) 9-13 2.http协议深度剖析③-http响应详解(禁用缓存设置) 9-13 3.http协议深度剖析④-http...
网页版微信集成了撤回消息、好友列表、好友申请、朋友圈、群发、私发、创建群聊...相比之下,HTTP 是半双工的,客户端必须先发起请求,服务器才能响应,因此实时性较差。由于 WebSocket 是长连接,减少了网络中的延迟。
9-10 7.http协议深度剖析①-http请求详解 防盗链技术 9-13 0.回顾 9-13 1.http协议深度剖析②-http响应详解(302 304码运用) 9-13 2.http协议深度剖析③-http响应详解(禁用缓存设置) 9-13 3.http协议深度剖析④-http...
9-10 7.http协议深度剖析①-http请求详解 防盗链技术 9-13 0.回顾 9-13 1.http协议深度剖析②-http响应详解(302 304码运用) 9-13 2.http协议深度剖析③-http响应详解(禁用缓存设置) 9-13 3.http协议深度剖析④-http...
9-10 7.http协议深度剖析①-http请求详解 防盗链技术 9-13 0.回顾 9-13 1.http协议深度剖析②-http响应详解(302 304码运用) 9-13 2.http协议深度剖析③-http响应详解(禁用缓存设置) 9-13 3.http协议深度剖析④-http...
9-10 7.http协议深度剖析①-http请求详解 防盗链技术 9-13 0.回顾 9-13 1.http协议深度剖析②-http响应详解(302 304码运用) 9-13 2.http协议深度剖析③-http响应详解(禁用缓存设置) 9-13 3.http协议深度剖析④-http...
urllib 库 是 Python 内置的 HTTP 请求库。urllib 模块提供的上层接口,使访问 www 和 ftp 上的数据就像访问本地文件一样。 有以下几种模块: 1.urllib.request 请求模块 2. urllib.error 异常处理模块 3. urllib....
OSI 模型在深入研究连接过程之前,让我们回顾一下基本的 OSI 模型(开放系统互连模型)。 OSI 模型是一种概念模型,用于标准化两个系统之间的通信 - 一个是请求发起的地方(客户端),另一个是为请求提供服务并返回...
3.5.1 HTTP头信息的操作 3.5.2 设置MIME类型 3.5 13页面重定向操作 3.6 Session会话对象的应用 3.6.1 session的生命周期 3.6.2 会话的创建与获取. 3.6.3 移除session中的数据 3.6.4 设置session的有效时间 3.7 ...
3.4.2. 设计回顾 3.4.3. 配置选项 3.4.4. Resolvers 3.4.4.1. 文件 Resolver 3.4.5. 基本用法 4. Zend_Cache 4.1. 简介 4.2. 缓存原理 4.2.1. Zend_Cache 工厂方法 4.2.2. 标记纪录 4.2.3. 缓存清理 4.3. ...
词汇:Web浏览器,Web服务器,URL,解析,协议,服务器,客户端,路径,Internet服务提供商(ISP),DNS服务器,IP地址,http请求,http响应,客户端编程,服务器端编程 客户端编程回顾 JavaScript简介 Node.js和...
相关参考:网易新闻排行榜抓取回顾 参考项目:网络爬虫之最基本的爬虫:爬取网易新闻排行榜 2. 对于登陆情况的处理 2.1 使用表单登陆 这种情况属于post请求,即先向服务器发送表单数据,服务器再将返回的cookie...
├─(101) 05 python全栈3 day54 Django请求生命周期之Http请求.avi ├─(102) 06 python全栈3 day54 Django请求生命周期之FBV和CBV.avi ├─(103) 07 python全栈3 day54 Django请求生命周期之CBV扩展.avi ├─(104)...
12.2 包签名过程回顾 12.2.1 理解数字签名:场景1 12.2.2 理解数字签名:场景2 12.2.3 一种理解数字签名的模式 12.2.4 数字签名执行方式 12.2.5 签名过程的影响 12.3 在包之间共享数据 12.3.1...
12.2 包签名过程回顾 12.2.1 理解数字签名:场景1 12.2.2 理解数字签名:场景2 12.2.3 一种理解数字签名的模式 12.2.4 数字签名执行方式 12.2.5 签名过程的影响 12.3 在包之间共享数据 12.3.1...
4.2.3 回顾以前的几个功能 44 4.3 对数组进行操作 45 4.3.1 遍历数组 46 4.3.2 在数组与标量之间进行转换 46 4.3.3 给数组重新排序 48 4.4 练习:做一个小游戏 49 4.5 课时小结 51 4.6 课外作业 51 4.6.1 ...