`
JasonShieh
  • 浏览: 521076 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

基本HTTP请求回顾

    博客分类:
  • JAVA
阅读更多

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);
         
     }
     
     
 }

分享到:
评论

相关推荐

    python全栈开发基础+前端+web框架+项目实战视频.zip

    http协议之请求协议 http协议之响应协议1 http协议之响应协议2 css的四种引入方式 css的基本选择器 css的属性选择器和伪类 css的属性操作(一) css的属性操作(二) 外边距和内边距 ....... 3 python全栈开发web框架篇...

    go 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 ...

    python网络编程DAY04.txt

    前情回顾 1.httpserver (HTTP协议) * 从浏览器接收连接 * 接收请求内容,打印请求内容 * 组织响应内容 * 将内容以HTTP协议的格式回发给客户端 2. IO模型 阻塞IO : 默认的IO形态, 效率低 非阻塞IO 非阻塞...

    python入门到高级全栈工程师培训 第3期 附课件代码

    03 Django请求生命周期之Http请求 04 Django请求生命周期之FBV和CBV 05 Django请求生命周期之CBV扩展 06 瞎扯淡 07 Django请求生命周期之响应内容 08 学员管理示例:数据库设计 09 学员管理示例:班级管理 10 学员...

    (全)传智播客PHP就业班视频完整课程

    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...

    网页版微信,集成redis,mysql,knife4j,websocket等技术

    网页版微信集成了撤回消息、好友列表、好友申请、朋友圈、群发、私发、创建群聊...相比之下,HTTP 是半双工的,客户端必须先发起请求,服务器才能响应,因此实时性较差。由于 WebSocket 是长连接,减少了网络中的延迟。

    史上最全韩顺平传智播客PHP就业班视频,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...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    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...

    史上最全传智播客PHP就业班视频课,8月份视频

    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...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    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...

    Python urllib.request对象案例解析

    urllib 库 是 Python 内置的 HTTP 请求库。urllib 模块提供的上层接口,使访问 www 和 ftp 上的数据就像访问本地文件一样。 有以下几种模块: 1.urllib.request 请求模块 2. urllib.error 异常处理模块 3. urllib....

    http-connection-lifecycle:HTTP 连接生命周期的完整详细解释

    OSI 模型在深入研究连接过程之前,让我们回顾一下基本的 OSI 模型(开放系统互连模型)。 OSI 模型是一种概念模型,用于标准化两个系统之间的通信 - 一个是请求发起的地方(客户端),另一个是为请求提供服务并返回...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    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 ...

    ZendFramework中文文档

    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. ...

    SU20增强脚本

    词汇:Web浏览器,Web服务器,URL,解析,协议,服务器,客户端,路径,Internet服务提供商(ISP),DNS服务器,IP地址,http请求,http响应,客户端编程,服务器端编程 客户端编程回顾 JavaScript简介 Node.js和...

    Python入门网络爬虫之精华版

    相关参考:网易新闻排行榜抓取回顾 参考项目:网络爬虫之最基本的爬虫:爬取网易新闻排行榜 2. 对于登陆情况的处理 2.1 使用表单登陆 这种情况属于post请求,即先向服务器发送表单数据,服务器再将返回的cookie...

    老男孩第三期Python全栈开发视频教程 零基础系统学习Python开发视频+资料

    ├─(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)...

    精通ANDROID 3(中文版)1/2

    12.2 包签名过程回顾  12.2.1 理解数字签名:场景1  12.2.2 理解数字签名:场景2  12.2.3 一种理解数字签名的模式  12.2.4 数字签名执行方式  12.2.5 签名过程的影响  12.3 在包之间共享数据  12.3.1...

    精通Android 3 (中文版)2/2

    12.2 包签名过程回顾  12.2.1 理解数字签名:场景1  12.2.2 理解数字签名:场景2  12.2.3 一种理解数字签名的模式  12.2.4 数字签名执行方式  12.2.5 签名过程的影响  12.3 在包之间共享数据  12.3.1...

    perl语言脚本文档说明

    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 ...

Global site tag (gtag.js) - Google Analytics