java.net.URL get 和post 请求

 

调用方式:

String para = "p1=参数1&p2=参数2";
String sr=HttpRequest.sendPost("http://localhost:8080/demo/getUser.json",para);
System.out.println("sr:" + sr);

 

String para = "p1=参数1&p2=参数2";
String sr=HttpRequest.sendGet("http://localhost:8080/demo/getUser.json",para);
System.out.println("sr:" + sr);

 

工具类:HttpRequest.java

import javax.servlet.http.Cookie;
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 {

    public static String sCookie = null;
    /**
     * 向指定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();
            //设置cookie
            if(sCookie!=null && sCookie.length()>0){
                connection.setRequestProperty("Cookie", sCookie);
            }

            // 设置通用的请求属性
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36");

            // 建立实际的连接
            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;
            }

            //获取cookie
            String cookie = connection.getHeaderField("set-cookie");
            if(cookie!=null && cookie.length()>0){
                sCookie = cookie;
            }
            System.out.println("cookie::::::" + sCookie);

        } 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();
            //设置cookie
            if(sCookie!=null && sCookie.length()>0){
                conn.setRequestProperty("Cookie", sCookie);
            }

            // 设置通用的请求属性
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36");

            // 发送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;
            }

            //获取cookie
            String cookie = conn.getHeaderField("set-cookie");
            if(cookie!=null && cookie.length()>0){
                sCookie = cookie;
            }

            System.out.println("cookie::::::" + sCookie);
        } 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;
    }
}

 

 

spring-ai学习(四)-MCP 创建一个springai项目1.依赖。 阅读详情

相关推荐

Unity Addressable资源缓存路径自定义指南:告别C盘爆满烦恼

本文详细介绍了如何自定义Unity Addressable系统的资源缓存路径,解决其默认存储在C盘导致的磁盘空间不足问题。通过配置CacheInitializationSettings并编写编辑器脚本,开发者可以将缓存迁移至项目目录,实现资源的集中管理,提升团队协作效率与开发环境一致性。

pytorch8learner的博客 442

java.net.URLget方法的含义

呵呵,隐士研究java.net.URL中,源码注释如下: * @author  James Gosling * @version 1.130, 08/25/04 * @since JDK1.0 哈哈,白胡老头写的,好些个get方法,含义不是很直白,隐士写个小程序把各种值dump出来瞧瞧。输入结果如下:getAuthority() = so.mdbchina.comgetClass(

网络隐士的专栏 3829

Xilinx ISE系列教程(2):LED点灯工程、仿真、bit下载mcs固化

bit流生成配置选项很多,支持生成bit/bin/ascii格式的bin文件,是否压缩,配置速度,配置管脚的上下拉,用户ID,数据加载速度,SPI总线宽度,是否支持Readback,程序加密等等。,在之后的文章,我们会以Xilinx Spartan-6系列FPGA XC6SLX16为例,不涉及FPGA开发知识,仅仅是工具的使用,介绍Xilinx ISE开发环境的使用教程使用技巧。bit文件下载之后,可以看到LED按照我们设计的1s周期闪烁起来了,但是此时如果断电,重新上电程序就丢失了。...

whik1194的博客 2231

使用java.net.URL实现Post数据

实现:利用URL访问URL并传递参数,然后获取返回结果。 可用于模拟http访问。   package test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.InputStreamReader; import ja...

万丈阳光 652

java net url post_设置java.net.URL请求方式post get

URL url = new URL("网页");HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setDoOutput(true);//允许连接提交信息connection.setRequestMethod("POST");//网页提交方式“GET”、“POST”connectio...

weixin_31530761的博客 427

java原生类java.net.HttpURLConnection的使用,实现get,post请求

泛微oa对接企业微信api时在学习如何使用java发送网络请求.由于不会在泛微里加jar包,所以我放弃了okhttp3来发送网络请求,使用了java的原生类java.net来发送网络请求.请求的代码原型我是用webapi中的代码示例中拉出来的,现在的代码是在其基础上修改的。

weixin_46115507的博客 649

使用Java.net包下原生的HttpURLConnection对象调用HTTP接口(基于POST请求)

本篇将主要介绍如何使用HttpClient4.5版本调用接口的实例.(实现代码中有大量注释供理解所用) 先准备好一个Springboot项目,方便自己编写接口与后台直接main方法调用. Springboot工程结构展示: 准备好后,第一步先简单的在Controller层中编写基于POST方法的接口. 1.POST请求一般用于提交数据,所以先创建一个User实体类用于自动接收参数.(记得重写toString()方法,方便查看属性值) public class User { pri

ShangHai0123的博客 1636

Java发送GetPost请求

import com.alibaba.fastjson.JSONObject; 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.Ma

愿你的未来如约而至 ❀ 276

Java 发送Http get/post请求,调用Http接口、方法

Java 发送Http get/post请求,调用Http接口、方法

weixin_42537012的博客 3778

java直接发送http的getpost请求

java原始包net中,有支持http的getpost请求类。直接看代码 get请求: public class httpTest { public static void main(String[] args) { new Runs().start(); } static class Runs extends Thread...

dianganzhe9404的博客 137

java get请求简洁,Java 不依赖第三方实现 HTTP GET POST 请求 ( 二 )

Java 不依赖第三方实现 HTTP GET POST 请求 ( 一 ) 章节中,我们使用 java.net java.io 包完成了一个 GET 请求,没做之前想起来是不是很复杂,实际动手写了之后才发现很简单上一章节鉴于篇幅,我们并没有完成 HTTP POST 请求的实现,本章节,我们就把剩余的 MyPOSTRequest() 代码补起来HTTP POST 请求 vs HTTP GE...

weixin_42523985的博客 257

java get请求简洁,Java 不依赖第三方实现 HTTP GET POST 请求 ( 一 )

一般情况下,我们使用 Java 发起一个 HTTP 发起一个 GETPOST 请求,最先想到的是什么?对,就是先找找看有没有啥现成的解决方案,然后,肯定就会想到 HTTPClient 这种大名鼎鼎的库其实,对于一般的请求Java 内置的包 java.net 就能够实现了。能不使用 HTTPClient 就不用呗怎么说呢?我本人有极大的洁癖症,能少一点是一点所以,接下来的案例,我们就不用什么...

weixin_29826879的博客 371

java通过java.net.URL发送http请求调用接口

一般在*.html,*.jsp页面中我们通过使用ajax调用接口,这个是我们通常用的。对于这些接口,大都是本公司写的接口供自己调用,所以直接用ajax就可以。但是,如果是多家公司共同开发一个东西,一个功能可能要调多个接口,一两个ajax可以在jsp页面上显示,但是如果多了,就不能写这么多ajax在前端了。这时候需要封装一成一个接口,在接口里面如何调用其他接口呢?这就用到了java.net.URL...

weixin_33974433的博客 147

HttpClient(apache) 与 java.net.URL ---处理http请求

HttpClient(apache) 与java.net.URL 处理http请求 ① :org.apache.http.client.HttpClient; Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于H

济天下68的博客 5779

Java发送http的getpost请求

转自:https://www.cnblogs.com/zhuawang/archive/2012/12/08/2809380.html package wzh.Http; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.Prin

不求重复造轮子,但必须要知道轮子是怎么造的。 525

1.使用java.net.URL类访问网络数据

网络打交道总是难免的,所以很有必要学一下怎么操作网络交互。 我们通过URL类或者HttpClient类,都可以对网络访问,至于这两个类的区别,HttpClient类底层还是使用了Url类,对其封装了一下。 第一步:建立一个服务器端,其中get方法返回"you had receied the message from http://192.168.1.132:8088/WebServer

a107494639的专栏 4750

Java 调用第三方接口(get/post

Java调用第三方接口方法(get/post

大家一起学习! 6726

java中对URL进行post请求

package FromApp; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.InetSocketAddress; import java.net.Proxy; import java.net.URL; import ja...

AIOT魔法师 1957

通过java.net.URLConnection发送HTTP请求的方法

目录 1. 运用原生Java Api发送简单的Get请求Post请求 2. 简单封装 3. 简单测试 如何通过Java发送HTTP请求,通俗点讲,如何通过Java(模拟浏览器)发送HTTP请求Java有原生的API可用于发送HTTP请求,即java.net.URLjava.net.URLConnection,这些API很好用、很常用,但不够简便; 所以,也流行有许多Java HT...

jarniyy的博客 2971

Java调用接口

第一种方式: 首先URL restURL = new URL(url);这其中的url就是需要调的目标接口地址,URL类是java.net.*下的类,这个不陌生。 setRequestMethod("POST");请求方式是有两个值进行选择,一个是GET,一个是POST,选择对应的请求方式 setDoOutput(true);setDoInput(true); setDoInput() ...

gaoxiang24的博客 338

Java发起postget请求

Java发起postget请求

技术分享 881

java get方式请求url

java get方式请求url

weixin_45934162的博客 1311

幻灵游侠架设视频教程.mp4

幻灵游侠架设视频教程

《基于YOLOv8的玻璃幕墙结构胶老化程度评估系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面部署说明一站式服务,拿来就能用的绝对好资源!!!项目备注1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

上一篇: centos7 nginx 开机自启动
下一篇: 百度地图坐标定位
midWander
博客等级 码龄16年 3粉丝 31原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值