`
umgsai
  • 浏览: 104753 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Java发送http请求代码示例

阅读更多
/**
 * Created by shangyidong on 16/7/28.
 */
public class HttpUtil {
    private static final AvatarLogger logger = AvatarLoggerFactory.getLogger(HttpUtil.class);

    /**
     * 向指定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) {
            logger.error("发送GET请求出现异常", e);
        } finally {//关闭输入流
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e) {
                logger.error(e);
            }
        }
        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) {
            logger.error("发送POST请求出现异常", e);
        } finally {
            //关闭输出流、输入流
            try {
                if(out!=null){
                    out.close();
                }
                if(in!=null){
                    in.close();
                }
            } catch (IOException e){
                logger.error(e);
            }
        }
        return result;
    }

    public static String sendPostMethod(String url, String title, String content, String warnContactList){
        return sendPost(url, "domain=&typeItem=Page&level=1&url=&title=" + title + "&typeObject=Web&content=" + content + "&source=mkt-monitor&typeAttribute=Content&notifier=[" + warnContactList + "]&severity=high");
    }

    public static void main(String[] args){
        //发送 GET 请求
        //String s = HttpUtil.sendGet("http://localhost:6144/Home/RequestString", "key=123&v=456");
        //System.out.println(s);

        //发送 POST 请求
        String sr = HttpUtil.sendPost("http://****/report/alarm", "domain=&typeItem=Page&level=1&url=&title=测试告警测试告警test&typeObject=Web&content=测试告警内容&source=mkt-monitor&typeAttribute=Content&notifier=[{\"mobile\": \"170****0278\", \"notify_methods\": \"email,weixin,sms\", \"email\": \"shangyidong@***.com\", \"name\": \"shangyidong\"},{\"mobile\": \"183****6723\", \"notify_methods\": \"email,weixin,sms\", \"email\": \"yangcheng15@***.com\", \"name\": \"yangcheng15\"}]&severity=high");
        System.out.println(sr);
    }
}

 

分享到:
评论

相关推荐

    JAVA发送POST请求,如何使用JAVA发送POST请求

    本资源库提供了一份完整的JAVA客户端发送POST请求的示例代码,可以帮助您快速了解如何使用JAVA客户端发送POST请求,同时也适用于其他HTTP请求类型。 我们的示例代码包括以下主要部分: 创建HTTP连接:使用Java.net...

    使用java发送get和post请求实践

    Apache HttpClient 库是 Apache 软件基金会提供的一个开源库,用于在 Java 中发送 HTTP 请求。它提供了一个高效、灵活的方法来处理 HTTP 请求和响应。 使用 Apache HttpClient 库发送 GET 请求 在上面的代码中,...

    详解Java发送HTTP请求

    主要介绍了Java发送HTTP请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    JAVA发送http get/post请求,调用http接口、方法详解

    主要介绍了Java发送http get/post请求调用接口/方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    forest:Java的高级轻量级HTTP客户端框架。 它使使用Java发送HTTP请求更加容易

    相比于直接使用Httpclient您不再用写一大堆重复的代码了,而是像调用本地方法一样去发送HTTP请求。 文档和示例: Forest有哪些特性? 以Httpclient和OkHttp为后端框架 通过调用本地方法的方式去发送Http请求, 实现了...

    使用HttpClient发送POST请求,并获取响应内容(附详细步骤).txt

    这个代码的意义在于展示了如何使用Java中的HttpClient库发送HTTP请求,并处理响应结果。在实际开发中,我们经常需要与Web服务进行交互,例如查询数据库、提交表单等。通过学习这个示例,你可以了解到如何使用...

    JAVA上百实例源码以及开源项目源代码

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    java源码包---java 源码 大量 实例

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    通过本地java代码访问wsdl接口

    wsimport -keep http://xxxx:8080/axis2test/services/HelloWorld?wsdl工具所在目录生成本地代码,通过本地java代码访问wsdl接口

    java通用文件上传功能技术实现

    本文将介绍如何使用Java的HttpPost方法实现文件上传,并提供相关的代码示例。 二、文件上传的原理: 文件上传的原理是将文件的内容通过HTTP协议发送给服务器,服务器再对接收到的文件进行处理。在使用Java的...

    JAVA上百实例源码以及开源项目

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    springboot的retrofit示例代码

    简化发送http请求的工具retrofit的示例代码

    java源码包2

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术...

    java源码包4

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术...

    java源码包3

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术...

    使用Java创建一个网络爬虫

    发送HTTP请求来获取网页内容。 解析HTML页面以提取有用的信息。 爬取特定网站上的数据。 处理异常情况和错误。 存储爬取的数据到本地文件。 为了演示,我们将爬取一个示例网站上的标题和链接。这个项目将展示如何...

    java开源包8

    Java发送短信包 LemonSMS LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持...

    java开源包10

    Java发送短信包 LemonSMS LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证...

Global site tag (gtag.js) - Google Analytics