广告
返回顶部
首页 > 资讯 > 精选 >怎么在Java中发起一个http请求
  • 665
分享到

怎么在Java中发起一个http请求

2023-06-14 09:06:40 665人浏览 安东尼
摘要

这期内容当中小编将会给大家带来有关怎么在Java中发起一个Http请求,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、GET与POSTGET和POST是HTTP的两个常用方法。GET指从指定的服务器中获

这期内容当中小编将会给大家带来有关怎么在Java中发起一个Http请求,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

一、GET与POST

GET和POST是HTTP的两个常用方法。
GET指从指定的服务器中获取数据
POST指提交数据给指定的服务器处理

1.GET方法

使用GET方法,需要传递的参数被附加在URL地址后面一起发送到服务器。
例如:http://121.41.111.94/submit?name=zxy&age=21
特点:

  • GET请求能够被缓存

  • GET请求会保存在浏览器的浏览记录中

  • 以GET请求的URL能够保存为浏览器书签

  • GET请求有长度限制

  • GET请求主要用以获取数据

2.POST方法

使用POST方法,需要传递的参数在POST信息中单独存在,和HTTP请求一起发送到服务器。
例如:
POST /submit HTTP/1.1
Host 121.41.111.94
name=zxy&age=21

特点:

  • POST请求不能被缓存下来

  • POST请求不会保存在浏览器浏览记录中

  • 以POST请求的URL无法保存为浏览器书签

  • POST请求没有长度限制

实现代码

下面将Java发送GET/POST请求封装成HttpRequest类,可以直接使用。HttpRequest类代码如下:

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 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", "* 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; }}

实例演示

在搭建flask框架文章中,我们已经写好了一个功能模块show(). 该功能模块如下:

#app的路由地址"/show"即为ajax中定义的url地址,采用POST、GET方法均可提交@app.route("/show",methods=["GET", "POST"])def show(): #首先获取前端传入的name数据 if request.method == "POST":  name = request.fORM.get("name") if request.method == "GET":  name = request.args.get("name") #创建Database类的对象sql,test为需要访问的数据库名字 具体可见Database类的构造函数 sql = Database("test") try:  #执行sql语句 多说一句,f+字符串的形式,可以在字符串里面以{}的形式加入变量名 结果保存在result数组中  result = sql.execute(f"SELECT type FROM type WHERE name='{name}'") except Exception as e:  return {'status':"error", 'message': "code error"} else:  if not len(result) == 0:   #这个result,我觉得也可以把它当成数据表,查询的结果至多一个,result[0][0]返回数组中的第一行第一列   return {'status':'success','message':result[0][0]}  else:   return "rbq"

下面 我们利用POST方法发起请求,Java代码如下:

  //创建发起http请求对象  HttpRequest h = new HttpRequest();  //向121.41.111.94/show发起POST请求,并传入name参数  String content = h.sendPost("http://121.41.111.94/show","name=张新宇");  System.out.println(content);

我们打印出content值,发现就是pythonshow()返回的json(在Java中,content被识别为String类型,而不是JSON

怎么在Java中发起一个http请求

(在转换过程中,不知道出什么问题了,中文显示了unicode编码。但在后面的转json格式后就没有这样的问题了)

字符串转json

Java成功发起Http请求后,由于返回值是String类型,而不是原本Python函数中的json格式。所以我们需要将字符串类型转为json格式,并通过键值对的形式得出message对应的值
首先在Maven中引入jar包:

<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.28</version></dependency>

转换代码如下:

import com.alibaba.fastjson.JSONObject;JSONObject jsonObject = JSONObject.parseObject(content);System.out.println(jsonObject);System.out.println(jsonObject.getString("message"));

运行结果:

怎么在Java中发起一个http请求

上述就是小编为大家分享的怎么在Java中发起一个http请求了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么在Java中发起一个http请求

本文链接: https://www.lsjlt.com/news/269531.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在Java中发起一个http请求
    这期内容当中小编将会给大家带来有关怎么在Java中发起一个http请求,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、GET与POSTGET和POST是HTTP的两个常用方法。GET指从指定的服务器中获...
    99+
    2023-06-14
  • nodejs中怎么实现一个http请求
    nodejs中怎么实现一个http请求,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。nodejs http请求相关总结通过no...
    99+
    2022-10-19
  • 在java项目中使用java.net.URLConnection实现一个发送HTTP请求功能
    这期内容当中小编将会给大家带来有关在java项目中使用java.net.URLConnection实现一个发送HTTP请求功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、前言如何通过Java发送HT...
    99+
    2023-05-31
    java.net.urlconnection http java
  • Go语言怎么使用标准库发起HTTP请求
    Go语言(Golang)是由Google开发的一种高效的编程语言,尤其适用于网络编程和系统编程。在网络应用程序中,发送HTTP请求是非常常见的操作。本文将介绍如何在Go语言中使用标准库发起HTTP请求。HTTP请求的基本结构在发起HTTP请...
    99+
    2023-05-14
    go语言 Golang HTTP请求
  • Node.js中怎么发起get/post请求
    Node.js中怎么发起get/post请求,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、get由于get请求的参数在ur...
    99+
    2022-10-19
  • JavaScript中怎么发出HTTP请求
    这篇文章给大家介绍JavaScript中怎么发出HTTP请求,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。XMLHttpRequestXMLHttpRequest对象可用于从Web服务...
    99+
    2022-10-19
  • 使用Flutter怎么实现一个Http网络请求
    这期内容当中小编将会给大家带来有关使用Flutter怎么实现一个Http网络请求,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. Http的请求方式简介Http网络请求方式就是描述了客户端想对指定的资源...
    99+
    2023-06-14
  • 在JAVA中发送HTTP请求的方式有哪些
    在JAVA中发送HTTP请求的方式有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式...
    99+
    2023-06-06
  • Java使用HttpUtils怎么实现发送HTTP请求
    本篇文章和大家了解一下Java使用HttpUtils怎么实现发送HTTP请求。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。目录第一部分:简单总结HTTP请求常用配置第二部分:使用JavaLib的HttpUtils第三部分...
    99+
    2023-07-06
  • JAVA中的HTTP请求怎么利用HttpClient实现发送
    JAVA中的HTTP请求怎么利用HttpClient实现发送?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。HttpClient介绍HttpClient 不是一个...
    99+
    2023-05-31
    java httpclient http
  • jMeter中怎么发送两个逻辑相关的HTTP请求
    这期内容当中小编将会给大家带来有关jMeter中怎么发送两个逻辑相关的HTTP请求,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。现在我有另一个需求场景:假设我开发了一个创建Service Request的...
    99+
    2023-06-03
  • node中怎么利用Request实现一个HTTP请求客户端
    这期内容当中小编将会给大家带来有关node中怎么利用Request实现一个HTTP请求客户端,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 安装及简单使用安装requ...
    99+
    2022-10-19
  • http请求怎么在spring boot中使用
    今天就跟大家聊聊有关http请求怎么在spring boot中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先是经过封装:一:初始化httpclientprivate ...
    99+
    2023-05-30
    springboot http
  • JS前端并发多个相同的请求怎么控制为只发一个请求
    这篇文章主要讲解了“JS前端并发多个相同的请求怎么控制为只发一个请求”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS前端并发多个相同的请求怎么控制为只发一个请求”吧!描述如下同时发多个相同...
    99+
    2023-07-02
  • Delphi通过IdHTTP怎么发送Http请求到Java 后台
    这篇文章将为大家详细讲解有关Delphi通过IdHTTP怎么发送Http请求到Java 后台,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。##########################...
    99+
    2023-06-04
  • 怎么使用事务码SMICM分析ABAP代码发起的HTTP请求的错误
    这篇文章主要为大家展示了“怎么使用事务码SMICM分析ABAP代码发起的HTTP请求的错误”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么使用事务码SMICM分析ABAP代码发起的HTTP请求...
    99+
    2023-06-02
  • 怎么设置Fiddler来拦截Java代码发送的HTTP请求
    这篇文章主要介绍“怎么设置Fiddler来拦截Java代码发送的HTTP请求”,在日常操作中,相信很多人在怎么设置Fiddler来拦截Java代码发送的HTTP请求问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-06-04
  • node中怎么实现一个跨域请求
    这期内容当中小编将会给大家带来有关node中怎么实现一个跨域请求,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。第一种:jsonp参看用nodejs实现json和jsonp...
    99+
    2022-10-19
  • 怎么在JavaScript中使用Promise控制并发请求个数
    这篇文章给大家介绍怎么在JavaScript中使用Promise控制并发请求个数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。串行:一个异步请求完了之后在进行下一个请求并行:多个异步请求同时进行串行举例:var&nbs...
    99+
    2023-06-15
  • Java开发者必知:如何在HTTP请求中实时更改路径?
    在Web开发中,HTTP请求是不可避免的一部分。而有时候,我们需要动态地更改请求路径,以便我们的应用能够更好地适应不同的需求。本文将介绍如何在Java中实现HTTP请求路径的实时更改。 首先,我们需要了解Java中HTTP请求的基础知识。...
    99+
    2023-06-27
    path http 实时
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作