`
JasonShieh
  • 浏览: 528463 次
  • 性别: 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);
         
     }
     
     
 }

分享到:
评论

相关推荐

    Http协议之请求头和响应头

    在深入探讨HTTP协议中的请求头和响应头之前,我们首先简要回顾一下HTTP协议的基本概念。HTTP(Hypertext Transfer Protocol)是用于从万维网服务器传输超文本到本地浏览器的传输协议,它允许数据在客户端和服务器...

    ASIHTTPRequest网路请求

    ASIHTTPRequest是iOS开发中早期广泛使用的一个网络请求库,由美国开发者Sam Soffes开发,它简化了HTTP请求的处理,使得在Objective-C项目中发送网络请求变得更加方便。虽然现在已被更现代的AFNetworking等库取代,但...

    通过http库控制请求超时来一窥context的使用

    首先,让我们回顾一下 Context 的基本概念。Context 是一个上下文管理,有一个根 Context,通过这个根 Context 可以创建出更多功能的 Context,例如具有取消功能的 Context 和超时功能的 Context。我们可以使用 ...

    J2EE基础技术回顾-J2EE课件.ppt

    Servlet是一种用Java编写的服务器端程序,它运行在Web服务器上,接收并响应来自Web客户端的HTTP请求。Servlet的主要作用是扩展服务器的功能,比如处理用户请求、管理会话、与数据库交互等。Servlet与Java Applet类似...

    微信小程序HTTP请求从0到1封装

    通过以上步骤,我们可以构建一个功能齐全的HTTP请求封装库,它不仅可以处理基本的GET和POST请求,还能处理更复杂的网络交互,包括拦截器、自定义配置等。这将极大地提高开发效率,使代码更加模块化,易于维护。 在...

    magento2 请求流 中文 翻译

    首先,我们来回顾一下 Magento 请求流的概览(见 Figure 1)。当用户通过 Web 浏览器发出 HTTP 请求时,服务器接收请求并准备响应。在 Magento 的上下文中,这个响应包含了处理特定模块、控制器和动作后的结果。 ...

    struts 回顾

    这篇博客可能是对Struts框架的一个回顾,探讨其基本概念、工作原理以及在实际开发中的应用。 Struts的核心组件包括: 1. **Action类**:这是业务逻辑的入口点,处理用户请求,并与模型进行交互。 2. **ActionForm**...

    AJAX\掌握 Ajax\掌握 Ajax第 3 部分-Ajax 中的高级请求和响应

    综上所述,要精通AJAX技术,不仅要熟练掌握`XMLHttpRequest`对象的使用,还要深刻理解HTTP就绪状态、HTTP状态代码以及不同类型的HTTP请求。通过这些基础知识的学习,开发者可以在遇到问题时更快地进行调试和解决问题...

    servlet经典案例回顾增删改查

    在IT行业中,Servlet是Java Web开发中的核心组件,主要用于处理HTTP请求并生成动态网页内容。本案例主要聚焦于Servlet在实现Web应用中的基础操作:增删改查(CRUD),结合MySQL数据库进行数据操作。以下将详细介绍这...

    掌握 Ajax第 2 部分-使用 JavaScript 和 Ajax 发出异步请求

    - `open(method, url, async)`: 这个方法用于初始化一个HTTP请求。`method`参数通常为GET或POST,`url`指定请求的目标URL,`async`表示请求是否异步执行。 - `send(data)`: 发送HTTP请求。如果使用POST方法,可以...

    Web_2_Servlet的基本使用和跳转1

    首先,我们将回顾 HTTP 协议,然后讨论 Servlet 的基本使用和跳转。 HTTP 协议回顾 HTTP 协议是应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于 1990 年提出,经过几年的使用...

    Java 网络编程回顾

    此外,URL和URLConnection类则用于处理HTTP请求和响应。 `java.nio`包(非阻塞I/O)提供了更高效的数据传输方式,尤其是对于高并发场景。它引入了选择器(Selector)和通道(Channel)的概念,允许程序同时处理多个...

    http简单实现,东北大学实验

    3. **解析HTTP请求**:接收到的数据是客户端发送的HTTP请求。你需要将接收到的字符串分解为各个部分,如请求行、请求头和可能的请求体。 4. **处理GET请求**:检查请求方法是否为GET,如果是,根据请求的URL找到...

    IBM Rational HTTP Request Editor

    1. **HTTP请求编辑**:Rational HTTP Request Editor提供了一个用户友好的界面,可以方便地输入HTTP请求的基本信息,如方法(GET、POST、PUT等)、URL、协议(HTTP/HTTPS)以及端口号。用户还可以添加请求头,如...

    Struts1.x使用回顾

    它将HTTP请求转发给对应的Action,然后将Action的结果返回给用户。 **5. 数据校验** Struts1.x提供了内置的表单验证功能,可以在ActionForm中定义字段的验证规则,当数据不符合规则时,会抛出错误信息并显示在页面...

    实践学期JSP回顾

    3. **JSP内置对象**:包括request、response、session、application、pageContext、out、exception等,它们为开发者提供了与HTTP请求、响应、会话、应用上下文等交互的接口。 4. **JSP指令**:例如page指令、...

    对Python发送带header的http请求方法详解

    首先,让我们回顾一下基本的HTTP请求头及其作用: 1. **User-Agent**: 表明客户端的身份,如浏览器类型和版本。在示例中,我们设置了`'User-Agent': 'fake-client'`,在实际应用中,你可能需要设置为真实用户的...

    HTTP协议调试工具HttpDebug

    1. **请求与响应捕获**:HttpDebug能够捕获和显示所有的HTTP请求和响应,包括方法(GET、POST等)、URL、状态码、头部信息和实体主体,这有助于理解网络交互的全过程。 2. **请求编辑器**:用户可以使用HttpDebug...

    详解使用fetch发送post请求时的参数处理

    首先,让我们回顾一下`fetch`的基本用法。`fetch`函数接收两个参数:URL和一个可选的配置对象。在这个配置对象中,我们可以设置HTTP方法(如POST),添加自定义头信息,以及提供请求体(body)。 ```javascript ...

    VC++6.0写的Http服务器源代码

    在计算机科学领域,网络编程是一项重要的技能,特别是对于开发服务器端应用而言。...这个过程不仅可以提升个人技能,也是对计算机科学历史的一次回顾,因为即使在现代编程环境中,许多基本原理和技术仍然适用。

Global site tag (gtag.js) - Google Analytics