package com.sprucetec.tms.utils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* HttpInvoker.
*
* @author Yinqiang Du
* @date 2016/8/11
*/
public class HttpInvokerUtils {
/**
* 日志.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(HttpInvokerUtils.class);
/**
* 发起http get 请求获取返回结果.
*
* @param getURL 请求路径 .
* @return
* @throws Exception
*/
public static void readContentFromGet(String getURL) throws IOException {
// 拼凑get请求的URL字串,使用URLEncoder.encode对特殊和不可见字符进行编码
URL getUrl = new URL(getURL);
// 根据拼凑的URL,打开连接,URL.openConnection函数会根据 URL的类型,
// 返回不同的URLConnection子类的对象,这里URL是一个http,因此实际返回的是HttpURLConnection
HttpURLConnection connection = (HttpURLConnection) getUrl
.openConnection();
// 进行连接,但是实际上get request要在下一句的 connection.getInputStream()函数中才会真正发到
// 服务器
connection.connect();
// 取得输入流,并使用Reader读取
BufferedReader reader = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
System.out.println(" ============================= ");
System.out.println(" Contents of get request ");
System.out.println(" ============================= ");
String lines;
while ((lines = reader.readLine()) != null) {
System.out.println(lines);
}
reader.close();
// 断开连接
connection.disconnect();
System.out.println(" ============================= ");
System.out.println(" Contents of get request ends ");
System.out.println(" ============================= ");
}
/**
* 发起http post 请求获取返回结果.
*
* @param urlStr 请求路径 .
* @param requestParamsJson json字符串.
* @return
* @throws Exception
*/
public static void sendRequest(String urlStr, String requestParamsJson) throws Exception {
BufferedOutputStream bufOutPut = null;
BufferedReader bufferedReader = null;
HttpURLConnection httpConn = null;
try {
URL url = new URL(urlStr);
httpConn = (HttpURLConnection) url.openConnection();
httpConn.setDoInput(true); // 设置是否从httpUrlConnection读入,默认情况下是true;
httpConn.setDoOutput(true); // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true, 默认情况下是false;
httpConn.setRequestMethod("POST");// 设定请求的方法为"POST",默认是GET
httpConn.setAllowUserInteraction(false); //是否允许用户交互
httpConn.setUseCaches(false); // Post 请求不能使用缓存
httpConn.setInstanceFollowRedirects(true);
httpConn.setRequestProperty("Accept-Charset", "UTF-8");
httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接
httpConn.setRequestProperty("Content-Type", "application/json"); // 设定传送的内容类型是可序列化的java对象
// 此处getOutputStream会隐含的进行connect(即:如同调用上面的connect()方法,
bufOutPut = new BufferedOutputStream(httpConn.getOutputStream());
httpConn.connect();
byte[] bdat = requestParamsJson.getBytes("UTF-8");// 解决中文乱码问题
bufOutPut.write(bdat, 0, bdat.length);
bufOutPut.flush();
// 根据ResponseCode判断连接是否成功
int responseCode = httpConn.getResponseCode();
if (responseCode != 200) {
LOGGER.error(" Error===" + responseCode);
} else {
LOGGER.info("Post Success!");
}
// 定义BufferedReader输入流来读取URL的ResponseData
bufferedReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
LOGGER.error("send post request error!" + e);
} finally {
httpConn.disconnect(); // 断开连接
try {
if (bufOutPut != null) {
bufOutPut.close();
}
if (bufferedReader != null) {
bufferedReader.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
相关推荐
HTTP中 GET 和 POST 请求的区别
一、http 的请求报文 GET 和 POST 其实都是 HTTP 的请求方法。 除了这 2 个请求方法之外,HTTP 还有 HEAD、PUT 、DELETE、TRACE、CONNECT、OPTIONS 这 6 个请求方法。 所以HTTP 的请求方法共计有 8 种,它们的描述如下所示: 请求方法 描述 get 请求指定的页面信息,并返回实体主体 post 向指定资源提交数据新型处理请求(例如提交表单或上传文件)。数据被包含在请求实体中。post 请求可能会导致行的自愿建立和
invoker java rpc_使用InvokerUtils.syncInvoke调用RPC接口,一直失败,所有RPC接口都报NullPointerException...
所有RPC调用都报空指针,异常来源于servicecomb2020-02-18 00:04:18,280Z | ERROR | pool-48-thread-4 | InvokerUtils | | com.huawei.m2m.cig.rpcservice | invoke failed,java.lang.NullPointerException: n...
POST/GET请求的区别以及Java实现HTTP(post/get)请求
HTTP的请求是成对儿的,有request就有response。称之为“上行请求”和“下行响应”。不管是哪种请求,都会“报头”+“报文”的形式传输数据;get 和 post请求是http协议中的两种请求方式;get一般用来获取服务器的信息的,post一般是用来更新信息。
Spring HttpInvoke实现,以及效率提升! 博客分类: Spring
最近接手服务器总被人质疑效率问题,说到底是质疑Spring HttpInvoke的效率问题。好在经过同事们的努力,找到了问题的根源,最终解决了这个问题。 我也顺道整理一下Spring HttpInvoke——那曾经最为熟悉的东西。 Spring HttpInvoke,一种较为常用的、基于Spring架构的服务器之间的远程调用实现,可以说是轻量级的RMI。 最初,我们使用Spring H
基于SolidWorks宏的草图点坐标自动化提取与Excel集成
本文详细介绍了如何利用SolidWorks宏编程实现草图点坐标的自动化提取并与Excel集成,显著提升机械设计效率。通过VBA代码解析与优化,解决了人工记录坐标耗时易错的问题,并扩展了多草图批量处理、数据可视化等高级功能,适用于数控加工、质量检测等场景。
无人机精准降落辅助系统核心技术解析
接近地面时(<10米)切换至基于图像的视觉伺服(IBVS),依据图像特征点偏移(如靶标图案、LED标记)微调姿态,消除位置累积误差。通过SRUKF(平方根无迹卡尔曼滤波) 算法融合三类数据,输出6自由度位姿估计(精度达厘米级),抑制单一传感器噪声。权值根据信噪比动态调整。模型预测控制(MPC):针对斜坡降落,构建包含平台倾角、风扰的动力学方程,滚动求解最优油门序列。动态照明适配:针对夜间或低光照场景,系统向降落平台发送亮度调节指令,如增强红外信标强度或调整可见光LED阵列,确保特征识别鲁棒性。
spring httpInvoke
spring httpInvoke 基于spring架构的服务器之间的远程调用实现。通过spring httpInvoke,可以调用远程接口,进行数据交互、业务逻辑操作 服务器端:(被调用一方) public class User implements Serializable{//必须实现serializable接口,远程调用的基础 private String username
ISP模块之色彩增强算法--HSV空间Saturation通道调整
色彩增强不同于彩色图像增强,图像增强的一般处理方式为直方图均衡化等,目的是为了增强图像局部以及整体对比度。而色彩增强的目的是为了使的原有的不饱和的色彩信息变得饱和、丰富起来。对应于Photoshop里面的“色相/饱和度”调节选项里面对饱和度的操作。色彩增强的过程,并不改变原有彩色图像的颜色以及亮度信息。 在我的色彩增强算法模块里面,始终只针对色彩饱和度(Saturation)信息做研究,
spring httpinvoke使用
1 实体,必须序列化 public class UcServiceEntity implements Serializable{ /** * @Fields serialVersionUID : TODO */ private static final long serialVersionUID = 1L; private String name; ...
Unity 之如何使用Pico4u锚点功能实现一个世界锁GameRoot
摘要 空间锚点技术是混合现实(MR)应用的核心,能永久记录虚拟物体的空间位置。文章介绍了在Unity中使用Pico SDK实现空间锚点的完整流程:1)环境配置需安装XR模块和Pico SDK;2)关键操作包括启动空间感知、创建/删除/查询/更新锚点;3)提供了经典应用案例,通过GameRoot节点实现场景固定和锚点同步。源码展示了基于XR交互工具包的锚点抓取与位置更新实现,为MR开发提供了实用参考方案。
黑猫带你学eMMC协议第1篇:全网最全emmc协议中文详讲,这份学习框架图,你值得拥有!!!(持续更新中...)
黑猫带你学eMMC协议第7篇:全网最全emmc写保护详解(write protect) 黑猫带你学eMMC协议第8篇:emmc可靠写详解(Write Reliability) 黑猫带你学eMMC协议第9篇:emmc的分区配置(partitioning) 黑猫带你学eMMC协议第10篇:eMMC命令队列详解(CMDQ) 黑猫带你学eMMC协议第11篇:eMMC擦除详解(erase/trim/discard/sanitize/secure erase/secure trim…) 黑猫带你学eMMC协议第12篇:
Http协议、get和post请求整理
1、什么是GET 和 POST ? GET 和 POST 其实都是 HTTP 的请求方法。除了这 2 个请求方法之外,HTTP 还有 HEAD、PUT、DELETE、TRACE、CONNECT、OPTIONS 这 6 个请求方法。所以HTTP的请求方法共计有 8 种,每个请求方法和描述如下: GET 请求指定的页面信息,并返回实体主体。 POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已...
【Windows Server 2019】发布服务器 | 远程桌面服务的安装与配置 Ⅰ——理论,实验拓扑和安装基于RemoteAPP的RDS
博客介绍了Windows Server中远程桌面服务的理论,实验拓扑以及基于RemoteAPP的RDS安装。博文介绍了如何在Windows Server上部署发布服务器。
HTTP——GET和POST请求
一、http协议:客户端和服务器之间通信时,发送的数据要遵守的规则,称为HTTP协议,协议中 的数据由称为报文。 HTTP协议属于应用层的面向对象的协议,5大特点:1)支持C/S模式;2)简单快速;3)灵活;4)无连接;5)无状态 HTTP是无状态无连接的: 1.无连接: 每一个访问都是无连接的,服务器挨个处理访问队列里的访问,处理完一个就关闭连接,然后处理新请求,即一次只处理一个请求,请求时建立连接,请求完释放连接,但是会存在重复建立连接的低效性,由此提出了Keep-Alive,使...
基于STM32L4XX、HAL库的IP101GRI以太网收发器(PHY)驱动程序设计
define IP101GRI_PHY_ADDRESS 0x01 // 根据硬件设计设置PHY地址。#define IP101GRI_PHYSTS 0x10 // PHY状态寄存器。#define IP101GRI_PHYINIR 0x12 // PHY中断寄存器。#define IP101GRI_PHYCR 0x14 // PHY控制寄存器。#define IP101GRI_PHYID2 0x03 // PHY标识符2。
matlab之作图设置游标的精度
matlab画出的figure游标的精度往往是固定的,这就对我们的调试和查看数据造成了不便。 那么怎么修改游标的精度呢? 首先,获取游标dcm_obj = datacursormode(gcf);然后对游标的精度进行设置:set(dcm_obj,'UpdateFcn',@NewCallback)这个NewCallback是什么东西呢?这是一个可以返回游标精度的函数,具体内容如下:function
Http中post/get请求参数接收
form-data、x-www-form-urlencoded:不可以用@RequestBody;可以用@RequestParamapplication/json:json字符串部分可以用@RequestBody;url中的?后面参数可以用@RequestParam在GET请求中,不能使用@RequestBody。在POST请求,可以使用@RequestBody和@RequestParam;可以使用多个@RequestParam获取数据,@RequestBody不可以;
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
解析HTTP请求报文(GET、POST)
使用状态机和正则表达式完成了对HTTP请求报文的解析,支持解析GET报文和POST报文(仅限Content-Type: application/x-www-form-urlencoded)。由于计划完成的web服务器需要实现展示主页(GET)用户登录(POST)用户注册(POST)获取图片(GET)获取视频(GET)五个功能,所以web服务器的请求解析模块满足:若为GET请求,可根据状态行信息,完成对请求内容地址的转换,以及请求头内其他内容的提取。若为POST请求。
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
Outlook Express 6 (OE6) for Win7/Win8/Win10
英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。
HTTP 的GET请求和POST请求
一、HTTP的请求 HTTP协议的报文都是ASCLL码,建立在TCP传输协议之上。HTTP的请求主要有三个部分:请求行、请求头和请求体。 1、请求行 即求情的数据格式中的第一行,由三个内容组成:请求方式、URL、HTTP协议的版本。 说明: &nb
IMSL CNL 7.0.0 (x86-64)Crack
IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件
深入解析 HTTP 中的 GET 请求与 POST 请求
GET 请求和 POST 请求作为 HTTP 协议中两种重要的请求方法,各自有着鲜明的特点和适用场景。深入理解它们的工作原理和差异,有助于开发者在 Web 开发过程中做出更合适的选择,构建出高效、安全、稳定的 Web 应用。随着 Web 技术的不断发展,HTTP 协议也在持续演进,但 GET 和 POST 请求依然会在未来的网络通信中扮演重要角色。
GET、POST的区别、抓包GET改POST、http请求头参数、状态码
http请求头相关必看知识
HTTP协议中GET请求和POST请求
一、HTTP协议 HTTP是一种通信协议,指架构在TCP/IP之上应用层的一种协议。 它有两个基本但又极为重要的特性: 1、基于请求(request)/响应(response)模型 2、无状态通信协议 HTTP是一种基于请求/响应的通信协议,客户端对服务器发出一个取得资源的请求,服务器将要求的资源响应给客户端,每次的联机只做一次请求/响应。在HTTP协议之下,服务器响应客户端之后,就不会记得客户端...
http请求中的post和get到底是什么
最近项目不是很忙,看起了别人写到java代码。后端返回数据都是用一个叫payload的类,然后就就引出了http相关的疑问。 一、get和post 1.什么是get 之前浅浅的学到get方法不安全,post方法安全。所以要用post。后来百度了发现好像不是这么回事。 get,就是向某个地方获取一些数据,这个获取的过程可以理解为一个简单的查询,没有造成什么影响,专业名词叫做“幂等”,意思是:...
HTTP协议以及get和post请求
HTTP协议 是W3C制定的一种超文本传输协议。 W3C: 万维网联盟组织 负责制定标准的:HTTP HTML4.0 HTML5 XML DOM等规范都是W3C制定的 超文本:不是普通文本,比如流媒体、声音、视频、图片等 协议: 协议实际上是某些人,或者某些组织提前制定好的一套规范,大家都按照这个规范来,这样可以做到沟通无障碍。 协议就是一套规范,就是一套标准。由其他人或其他组织来负责制定的。 我说的话你能听懂,你说的话,我也能听懂,这说
http:请求中get和post方法的区别
一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。HTTP定义了与服务器交互的不同方法,其中最基本的四种:GET,POST,PUT,DELETE,HEAD,其中GET和HEAD被称为安全方法,因为使用GET和HEAD的HTTP请求不会产生什么动作。不会产生动作意味着GET和HEAD的HTTP请求不会在服务器上产生任何结果。但是安全方法并不是什么动作都不产生,这里的安全方法仅仅指不会修改信息。
1009



被折叠的 条评论
为什么被折叠?



