`
dove19900520
  • 浏览: 599624 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java中利用URLConnection发送POST或GET请求

    博客分类:
  • java
阅读更多

啥也不说,直接上代码

/**
 * 
 */
package com.ctlovedove.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;

/**
 * @author ctlovedove
 *
 */
public class HttpUtils {
	/**
     * 向指定URL发送GET方法的请求
     * 
     * @param url
     *            发送请求的URL
     * @param param
     *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
     * @return URL 所代表远程资源的响应结果
     */
    public static String sendGet(String url, String param) {
        String result = "";
        BufferedReader in = null;
        try {
            String urlNameString = url + "?" + param;
            URL realUrl = new URL(urlNameString);
            // 打开和URL之间的连接
            URLConnection connection = realUrl.openConnection();
            // 设置通用的请求属性
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 建立实际的连接
            connection.connect();
            // 获取所有响应头字段
            Map<String, List<String>> map = connection.getHeaderFields();
            // 遍历所有的响应头字段
            for (String key : map.keySet()) {
                System.out.println(key + "--->" + map.get(key));
            }
            // 定义 BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送GET请求出现异常!" + e);
            e.printStackTrace();
        }
        // 使用finally块来关闭输入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        return result;
    }

    /**
     * 向指定 URL 发送POST方法的请求
     * 
     * @param url
     *            发送请求的 URL
     * @param param
     *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
     * @return 所代表远程资源的响应结果
     */
    public static String sendPost(String url, String param) {
        PrintWriter out = null;
        BufferedReader in = null;
        String result = "";
        try {
            URL realUrl = new URL(url);
            // 打开和URL之间的连接
            URLConnection conn = realUrl.openConnection();
            // 设置通用的请求属性
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 发送POST请求必须设置如下两行
            conn.setDoOutput(true);
            conn.setDoInput(true);
            // 获取URLConnection对象对应的输出流
            out = new PrintWriter(conn.getOutputStream());
            // 发送请求参数
            out.print(param);
            // flush输出流的缓冲
            out.flush();
            // 定义BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送 POST 请求出现异常!"+e);
            e.printStackTrace();
        }
        //使用finally块来关闭输出流、输入流
        finally{
            try{
                if(out!=null){
                    out.close();
                }
                if(in!=null){
                    in.close();
                }
            }
            catch(IOException ex){
                ex.printStackTrace();
            }
        }
        return result;
    }   
}

 

分享到:
评论
1 楼 sigaction 2017-06-18  
不错,短小灵活

相关推荐

    通过java.net.URLConnection发送HTTP请求

    URLConnection对象提供了设置请求属性的方法,如设置请求方法(GET、POST等)、设置请求头(如User-Agent、Content-Type等)以及设置超时等。例如,要发送POST请求并设置Content-Type为application/json,可以这样做...

    java使用url发送post和get请求:HttpConnUtils.jar

    记住,GET请求适用于不敏感的数据,而POST请求适用于敏感或大量数据的传输,因为GET请求的参数会显示在URL上,可能留下安全风险。在实际开发中,应考虑安全性、性能和HTTP规范来选择合适的请求方法。

    java中用URLConnection_类post方式提交表单

    java中用URLConnection类post方式提交表单是指在java应用程序中使用java.net.URLConnection类来实现POST方式的表单提交。POST方式是HTTP协议中的一种常见的请求方法,它允许客户端向服务器发送数据。下面是使用...

    java如何利用java.net.URLConnection发送HTTP.docx

    以下是如何利用`java.net.URLConnection`发送HTTP请求的详细步骤: 1. **创建URL对象**: 首先,你需要创建一个`java.net.URL`对象,它代表了你要访问的网络资源的地址。例如: ```java URL url = new URL(...

    java中用URLConnection类post方式提交表单.pdf

    Java 中使用 URLConnection 类 POST 方式提交表单 Java 中使用 URLConnection 类 POST 方式提交表单是 Java 语言中的一种常用技术,用于实现 HTTP 请求代理。下面我们将详细介绍该技术的实现细节。 首先,我们需要...

    Java实现HTTP(GET、POST)请求

    在Java中,可以使用`java.net.URL`和`java.net.URLConnection`类来发送GET请求。以下是一个简单的示例: ```java URL url = new URL("http://example.com"); URLConnection connection = url.openConnection(); ...

    http请求(get和post)的java实现

    在Java中,我们可以使用`java.net.URL`和`java.net.URLConnection`类来实现GET请求。然而,这里没有给出GET请求的实现代码,通常做法是创建URL对象,打开连接,然后从`getInputStream()`中读取响应。 ### 2. POST...

    java利用java.net.URLConnection发送HTTP请求的方法详解

    这个类提供了一个`doGet`方法,可以直接用于发送GET请求,并返回响应的文本内容。通过扩展此类,可以添加更多的功能,如支持POST请求、设置代理、处理重定向等。 总结来说,虽然Java原生的`URLConnection`类相比第...

    java URL URLConnection

    在实际开发中,`URL`和`URLConnection`通常用于简单的GET请求,而复杂的网络操作往往依赖于更强大的库。然而,理解这些基础类的工作原理对于深入学习网络编程和优化性能至关重要。同时,自定义`URLConnection`子类...

    Java如何实现URL带请求参数(get/post)及得到get和post请求url和参数列表的方法

    1. **发送GET请求**: ```java public static String sendGet(String url, String param) { String result = ""; try { String urlName = url + "?" + param; URL u = new URL(urlName); URLConnection ...

    java 用HttpsURLConnection进行传递中文时错误总结

    4. **URL编码**:对于GET请求,URL中的参数可能需要进行URL编码,防止特殊字符引起解析问题。使用`URLEncoder.encode()`方法: ```java String encodedParam = URLEncoder.encode("中文参数", "UTF-8"); String ...

    java发送http的get、post请求实现代码

    需要注意的是,POST请求中的参数是以键值对的形式写入到输出流的,而GET请求则是附加到URL上。此外,POST请求可以传输大量数据,而GET请求由于URL长度限制,通常用于传递少量数据。 在实际应用中,你可能还需要处理...

    Feign发送Get请求时,采用POJO对象传递参数的最终解决方案.docx

    在使用Feign客户端发送GET请求时,如果需要传递复杂的查询条件或分页参数,开发人员往往会倾向于使用Java POJO(Plain Old Java Object)对象作为方法参数。例如: ```java @FeignClient("microservice-provider-...

    java URLConnection全面解析(通俗易懂,包括cookie操作和上传文件)

    发送GET请求相对简单,只需要在URL后面拼接上查询字符串即可。这里的关键步骤如下: ```java // 定义URL地址和字符集 String url = "http://example.com"; String charset = "UTF-8"; // 构造查询字符串 String ...

    JDK中的URLConnection参数详解

    Java JDK 中的 `URLConnection` 是一个非常重要的网络通信接口,它是`java.net.URL`类的主要功能接口,用于打开和管理到互联网对象的连接。在本文中,我们将深入探讨`URLConnection`的一些关键特性和参数,特别是在...

    java网络编程中向指定URL发送GET POST请求示例

    在Java网络编程中,向指定URL发送GET和POST请求是常见的任务,这通常涉及到与Web服务器进行交互,例如获取网页内容、提交表单数据等。下面我们将详细讲解这两个请求方式的实现过程。 首先,让我们来看如何发送GET...

    JAVA NET 发送HTTP请求

    1. `sendGet(String url, Map, String&gt; params)`: 这个方法用于发送GET请求。URL参数可以直接拼接在URL后面,或者通过HttpURLConnection的setRequestProperty方法设置查询字符串。 2. `sendPost(String url, Map, ...

    java post文件流的操作

    根据提供的文件信息,...以上就是从给定文件的标题、描述、标签以及部分内容中总结出来的知识点,涵盖了Java POST请求发送与接收文件流的基础操作以及Spring MVC中处理文件上传的相关内容。希望这些信息对你有所帮助。

Global site tag (gtag.js) - Google Analytics