iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >使用Java发起http请求的流程
  • 946
分享到

使用Java发起http请求的流程

2023-06-06 14:06:59 946人浏览 独家记忆
摘要

使用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值,发现就是python中show()返回的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请求的流程

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: 使用Java发起http请求的流程

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

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

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

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

下载Word文档
猜你喜欢
  • 使用Java发起http请求的流程
    使用Java发起http请求的流程?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、GET与POSTGET和POST是HTTP的两个常用方法。GET指从指定的服...
    99+
    2023-06-06
  • Java如何发起http请求的实现(GET/POST)
    前言 在未来做项目中,一些功能模块可能会采用不同的语言进行编写。这就需要http请求进行模块的调用。那么下面,我将以Java为例,详细说明如何发起http请求。 一、GET与POST...
    99+
    2024-04-02
  • 怎么在Java中发起一个http请求
    这期内容当中小编将会给大家带来有关怎么在Java中发起一个http请求,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、GET与POSTGET和POST是HTTP的两个常用方法。GET指从指定的服务器中获...
    99+
    2023-06-14
  • Node.js中如何发起HTTP请求
    这篇文章主要介绍Node.js中如何发起HTTP请求,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!正文Node.js HTTPS ModuleNode.js在标准库中带有https模...
    99+
    2024-04-02
  • Go语言如何使用标准库发起HTTP请求
    本篇内容介绍了“Go语言如何使用标准库发起HTTP请求”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!HTTP请求的基本结构在发起HTTP请求...
    99+
    2023-07-05
  • Go语言怎么使用标准库发起HTTP请求
    Go语言(Golang)是由Google开发的一种高效的编程语言,尤其适用于网络编程和系统编程。在网络应用程序中,发送HTTP请求是非常常见的操作。本文将介绍如何在Go语言中使用标准库发起HTTP请求。HTTP请求的基本结构在发起HTTP请...
    99+
    2023-05-14
    go语言 Golang HTTP请求
  • Node发起HTTP请求的方法有哪些
    本篇内容主要讲解“Node发起HTTP请求的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node发起HTTP请求的方法有哪些”吧!正文Node.js HTTPS ModuleNode...
    99+
    2023-07-04
  • java发起http请求调用post与get接口的方法实例
    目录一、java调用post接口1、使用URLConnection或者HttpURLConnection2、使用CloseableHttpClient3、使用HttpCaller二、...
    99+
    2022-11-13
    java的get和post java获取post请求的请求体 接口get和post
  • 浅析Node发起HTTP请求的6种方法
    Node中怎么发起HTTP请求?本篇文章就来和大家一起探索下Node发起HTTP请求的6种不同方法,希望对大家有所帮助!本文介绍6种在nodejs中发起HTTP请求的不同方法,这里我们会通过对掘金社区的板块分类接口 的请求作为演示来完成这个...
    99+
    2023-05-14
    node nodejs​ http HTTP请求
  • ASP.NETCore使用IHttpClientFactory发出HTTP请求
    1.HttpClient类使用存在的问题 HttpClient类的使用所存在的问题,百度搜索的文章一大堆,好多都是单纯文字描述,让人感觉不太好理解,为了更好理解HttpClient使...
    99+
    2024-04-02
  • Java使用HttpUtils怎么实现发送HTTP请求
    本篇文章和大家了解一下Java使用HttpUtils怎么实现发送HTTP请求。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。目录第一部分:简单总结HTTP请求常用配置第二部分:使用JavaLib的HttpUtils第三部分...
    99+
    2023-07-06
  • 小程序中如何使用wx.request发起请求
    这篇文章主要为大家展示了小程序中如何使用wx.request发起请求,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“小程序中如何使用wx.request发起请求”这篇文章吧。wx.request(O...
    99+
    2023-06-26
  • PHP使用curl库发送HTTP请求
    在Web开发中,发送HTTP请求是一项非常重要的任务。无论是通过API获取数据,还是与第三方服务进行通信,都需要使用HTTP请求来进行数据传输。在PHP中,可以使用curl库来发送HTTP请求,本文就来详细介绍curl库的使用方法。一、cu...
    99+
    2023-05-22
    Http请求 PHP Curl库
  • Node.js发起HTTP请求的6种不同方法小结
    目录介绍正文Node.jsHTTPSModuleAxiosGotNeedleSuperagentNode-fetch对比结语介绍 本期将向大家介绍6种不同的方法在node.js中去发...
    99+
    2024-04-02
  • ASP.NET处理HTTP请求的流程是什么
    这篇文章主要介绍“ASP.NET处理HTTP请求的流程是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ASP.NET处理HTTP请求的流程是什么”文章能帮助大家解决问题。一、ASP.NET处理管...
    99+
    2023-06-30
  • 前端发起请求,后端响应请求的整个过程
    文章目录 前端注册页面axios 请求方法URL 路径配置自定义 axios方法封装 后端创建服务器模块接口方法模块连接数据库 本文分为:前端、后端两部分讲诉。以下是前端发送...
    99+
    2023-09-03
    前端 javascript vue.js node.js mysql
  • Java中的HTTP POST请求
    Java中的HTTP POST请求 在Java中,我们经常需要使用HTTP协议进行网络通信。其中,POST请求是一种常用的方式,它允许我们向服务器发送数据并获取响应。本文将介绍如何在Java中发送HT...
    99+
    2023-10-28
    java http python Java
  • JAVA发送HTTP请求的方式有哪些
    这篇文章主要介绍“JAVA发送HTTP请求的方式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JAVA发送HTTP请求的方式有哪些”文章能帮助大家解决问题。1. HttpURLConnecti...
    99+
    2023-07-05
  • Vue3如何使用axios发起网络请求
    目录Vue3使用axios发起网络请求1.何为Axios?2.如何安装Axios3.如何封装网络请求和全局实例化axios4. api.js是什么?5.http.js是什么?6.re...
    99+
    2024-04-02
  • php使用guzzle http发送并发接口请求
    在 PHP 中, Guzzle 是一个功能强大且流行的 HTTP 客户端,提供了方便的接口来发送 HTTP 请求并处理响应,本人非常喜欢这个包且重度依赖。 以下是使用 Guzzle 发送并发请求的基本示例:  首先确保在你的项目中安装了 G...
    99+
    2023-09-22
    php http 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作