`

Http发送请求

    博客分类:
  • java
阅读更多
package wzh.Http;

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;

public class HttpRequest {
    /**
     * 向指定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;
    }    

public static void main(String[] args) {
        //发送 GET 请求
        String s=HttpRequest.sendGet("http://localhost:6144/Home/RequestString", "key=123&v=456");
        System.out.println(s);
        
        //发送 POST 请求
        String sr=HttpRequest.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456");
        System.out.println(sr);
    }
}
分享到:
评论

相关推荐

    http发送请求获取返回结果

    http发送请求获取返回结果

    易语言建立HTTP连接请求

    Http发送请求(.请求句柄) ``` 这里的".请求句柄"是创建的HTTP请求句柄,"/path"是请求的URL路径,"GET"是请求方法。 4. **HTTP头部信息**: 在HTTP请求中,可以添加头部信息,比如Content-Type、Authorization...

    VB发送HTTP请求

    通过调用`.Open`方法初始化请求,然后设置请求头(如果有的话),最后通过`.Send`方法发送请求。请求完成后,`.ResponseText`属性将包含服务器返回的响应文本。 标签“http请求”暗示了我们讨论的核心内容。HTTP...

    vue中axios处理http发送请求的示例(Post和get)

    本文介绍了vue中axios处理http发送请求的示例(Post和get),分享给大家,具体如下: axios中文文档  https://github.com/mzabriskie/axios#using-applicationx-www-form-urlencoded-format axios文档 在处理http...

    C#实现发送简单HTTP请求的方法

    在C#编程中,发送HTTP请求是常见的网络通信任务,用于获取或提交Web资源。本文将详细介绍如何使用C#实现这个功能,特别是针对简单的GET请求。C#提供了System.Net命名空间下的WebRequest和WebResponse类,它们使得与...

    Java发https请求证书问题

    3. **设置请求方法**:接下来通过 `setRequestMethod()` 方法设置 HTTP 请求类型为 POST。 4. **启用输入输出流**:分别调用 `setDoOutput(true)` 和 `setDoInput(true)` 方法开启数据的输出和输入功能。 5. **打印...

    SQL 存储过程发送HTTP请求

    ### SQL存储过程发送HTTP请求知识点解析 在数据库管理和应用程序开发中,经常需要实现数据库与外部系统之间的交互。其中一种常见的需求就是从SQL Server中的存储过程发起HTTP请求来获取或发送数据。这种技术不仅...

    C#开发基础-发送http请求

    C# winform开发基础,使用http发送请求的demo样例。 适合初学者使用。 代码完整,visual studio 2019下打开即可运行。 C#下http的调用方式;json格式化的解析等。 需要个后台搭配使用,对于新手来说可能麻烦点。如有...

    用CURL来发送HTTP请求的方法

    ### 使用CURL发送HTTP请求详解 #### 一、引言 CURL,作为一个多功能的命令行工具,广泛应用于网络开发和脚本编程中,尤其在处理HTTP请求时表现出了强大的功能。本文旨在深入探讨如何利用CURL来发送HTTP请求,包括...

    c#使用Socket发送HTTP/HTTPS请求的实现代码

    这些方法使用Socket来发送请求,并对请求的结果进行处理。 ServerInfo类 ServerInfo类是一个辅助类,用于存储服务器的信息,例如服务器的主机名、端口号、响应结果等。 异步编程 在提供的代码中,使用了...

    使用http发送form表单请求参数.doc

    使用 HTTP 发送 Form 表单请求参数 在 Java 中发送 HTTP 请求时传输表单数据是非常常见的需求,而本文将详细介绍如何使用 HTTP 发送 Form 表单请求参数。 什么是 Form 表单请求参数 Form 表单请求参数是指在 HTTP...

    kettle抽取http请求,发送json参数.docx

    kettle抽取http请求,发送json参数 在数据integration和ETL(Extract, Transform, Load)过程中,kettle是一个常用的数据抽取工具。下面通过一个示例,来说明如何使用kettle抽取http请求,发送json参数。 标题解释...

    Python使用grequests(gevent+requests)并发发送请求过程解析

    2. 串行请求的局限性:由于requests发送请求是串行的,这在需要大量发送请求时将导致效率低下,特别是在网络请求的延时成为瓶颈时。 3. 并发请求的需求:为了解决效率问题,我们可以采用并发发送请求的方式。并发...

    HTTP发送POST请求的工具类

    HTTP发送POST请求的工具类

    Windows使用curl发送http请求,json报文。

    Windows使用curl发送http请求,json报文。

    利用HttpClient发送HTTP请求

    利用HttpClient发送HTTP请求 利用HttpClient发送HTTP请求

    C#的http发送post和get请求源码

    在C#编程中,HTTP(超文本传输协议)是用于客户端和服务器之间通信的主要协议,主要涉及GET和POST...这个程序可能包含一个窗口,用户输入请求参数,点击按钮后,程序使用`HttpClient`发送请求,并将结果展示在界面上。

    java中main方法发送httpPost请求

    发送请求并读取响应状态码: ```java connection.connect(); int responseCode = connection.getResponseCode(); ``` 6. **处理响应** 读取服务器返回的数据,可能是JSON、XML或其他格式: ```java try...

    java发送http请求

    `send`方法的核心逻辑包括创建连接、设置请求方法和属性、发送请求并读取响应。 在处理响应时,通常会用到`InputStream`和`BufferedReader`来读取响应流。`BufferedReader`可以配合`InputStreamReader`使用,指定...

Global site tag (gtag.js) - Google Analytics