Java HttpURLConnection 以数据流写数据到Servlet

2024年VSCode配置C++开发环境:MSVC/MinGW+CMake极速指南 C++作为高性能系统编程的核心语言,其开发环境的搭建是初学者和跨平台开发者面临的首要挑战。其核心原理在于将源代码通过编译器转换为可执行程序,并借助调试器进行问题排查。在现代开发中,高效的环境配置能极大提升工程实践效率,尤其对于需要在Windows平台进行原生开发或跨平台项目构建的场景。本文聚焦于当前(2024年)最稳定高效的**VSCode**配置方案,详细解析如何集成**MSVC/MinGW**编译器与**CMake**构建工具,实现从代码编写、智能感知到一键编译调试的完整工作流,帮助开发者快速搭建坚实的 阅读详情

Java HttpURLConnection 以数据流写数据到Servlet

这个问题以前碰到过,这次主要碰到了编码问题
在这个智力低下的非常日子里,折腾了一天多才把问题解决
记录一下,备忘

***************************************************
    客户器端代码,响应请求流
***************************************************


import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

/**
* User: libofeng
* Date: 2007-12-4
* Time: 16:03:16
* Description:以流发送数据包,请特别注意写流时的编码和接受流响应时的编码
*/
public class StreamPostTest {
    public static final String ENCODING_REQUEST = "utf-8";
    public static final String ENCODING_RESPONSE = "gb2312";


    public static void main(String args[]) {
        String requestString = "我们要以流发送的数据...";
        HttpURLConnection httpURLConnection;
        try {
            //建立链接
            URL gatewayUrl = new URL("http://localhost/xmlTest.do");
            httpURLConnection = (HttpURLConnection) gatewayUrl.openConnection();

            //设置连接属性
            httpURLConnection.setDoOutput(true);
            httpURLConnection.setDoInput(true);
            httpURLConnection.setUseCaches(false);

            //获得数据字节数据,请求数据流的编码,必须和下面服务器端处理请求流的编码一致
            byte[] requestStringBytes = requestString.getBytes(ENCODING_REQUEST);

            //设置请求属性
            httpURLConnection.setRequestProperty("Content-length", "" + requestStringBytes.length);
            httpURLConnection.setRequestProperty("Content-Type", "application/octet-stream");

            //建立输出流,并写入数据
            OutputStream outputStream = httpURLConnection.getOutputStream();
            outputStream.write(requestStringBytes);
            outputStream.close();

            //获得响应状态
            int responseCode = httpURLConnection.getResponseCode();

            if (HttpURLConnection.HTTP_OK == responseCode) {
                //当正确响应时处理数据

                System.out.println("");
                System.out.println("Http Response OK...");
                System.out.println("");

                StringBuffer responseBuffer = new StringBuffer();

                String readLine;
                BufferedReader responseReader;
        //处理响应流,必须与服务器响应流输出的编码一致
                responseReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream(), ENCODING_RESPONSE));
                while ((readLine = responseReader.readLine()) != null) {
                    responseBuffer.append(readLine).append("\n");
                }
                responseReader.close();

                System.out.println("Http Response:" + responseBuffer);
            }

        } catch (IOException e) {
            e.fillInStackTrace();
        }


    }
}


***************************************************
    服务器段代码,响应请求流
***************************************************

  //获得响应流,获得输入对象
        InputStream inputStream = httpServletRequest.getInputStream();
        PrintWriter out = httpServletResponse.getWriter();

        //建立接收流缓冲,准备处理
        StringBuffer requestBuffer = new StringBuffer();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, ENCODING_REQUEST));

        System.out.println("");
        System.out.println("Receive Http Request...");
        System.out.println("");

        //读入流,并转换成字符串
        String readLine;
        while ((readLine = reader.readLine()) != null) {
            requestBuffer.append(readLine).append("\n");
        }
        reader.close();

        //设置响应编码
        httpServletResponse.setCharacterEncoding(ENCODING_RESPONSE);

        //响应输出
        out.println(requestBuffer.toString());
        System.out.println("Response:" + requestBuffer.toString());

 

 

 

http://libofeng.cn/article.asp?id=191

YOLOv8改进策略【Conv和Transformer】| CVPR-2023 BiFormer 稀疏自注意力,减少内存占用 本文记录的是利用双级路由注意力机制优化的目标检测网络模型。传统的复杂度高,随着输入空间分辨率增加,计算量呈平方增长,导致严重的可扩展性问题。而本文所使用的在获取全局信息的同时,通过区域到区域路由和令牌到令牌注意力的合理设计,减少了不必要的计算量。BiFormer: Vision Transformer with Bi-Level Routing Attention采用四阶段金字塔结构,与一些先进的视觉Transformer类似。在每个阶段,首先使用重叠的补丁嵌入(在第一阶段)或补丁合并模块(在第二到第四阶段 阅读详情

相关推荐

ArduSub程序学习(1)——ardupilot框架整理

AP_HAL层(硬件抽象层)是我们制作 ArduPilot 的方式可移植到许多不同的平台。有一个顶级AP_HAL libraries/AP_HAL,用于定义代码其余部分的接口 有针对具体的板子特性,然后就有了AP_HAL_XXX 子目录,例如,AP_HAL_AVR 用于基于 AVR 的 开发板,AP_HAL_PX4用于 Pixhawk 开发板和 AP_HAL_Linux 基于 Linux 开发板。工具目录tools directories工具目录是杂项支持目录。

weixin_49839886的博客 2817

java uri servlet_java 通过HttpURLConnection与servlet通信

importjava.io.IOException;importjava.io.PrintWriter;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importjavax.servlet.ServletException;importjavax.servlet.ServletOutputStream;import...

weixin_39794340的博客 135

matlab snr矩阵计算公式_基于MATLAB和Adams的悬置系统解耦计算方法对比

一、概述动力总成悬置系统主要有两个作用:一是固定和支撑动力总成,限制动力总成在各种工况下的位移量,防止与其它部件碰撞;二是隔振作用,将动力总成的振动尽可能少的传递到车身。悬置系统隔振性能的核心就是解决刚体模态的频率分配和振动耦合问题,简言之就是关注动力总成的刚体模态和解耦率。动力总成悬置系统的刚体模态频率和能量解耦分析,行业内的主流计算方法分两种:一是用MATLAB编程进行分析计算,二是...

weixin_33416900的博客 1449

HttpURLConnection请求数据流的写入(write)和读取(read)

URLConnection类给应用程序和web资源之间架设起了通信的桥梁,这些web资源通常是通过url来标记的,本文将讲述如何使用HttpURLConnection来访问web页面(发送数据流)和读取数据流。 在Servlet中对于需要用post方式(get会暴露参数)写入参数的时候就用到了HttpURLConnection. 请求的Servlet,也可以写入main方法中进行测试

自由自在的生活! 7356

爆改YOLOv8 | PSA注意力机制融合入YOLOv8

yolov8,PSA注意力,即插即用

weixin_43986124的博客 2498

Python实战:3步搞定DICOM转JPG/PNG(附批量处理脚本)

本文详细介绍了如何使用Python在3步内将DICOM医学影像转换为JPG/PNG格式,并提供了批量处理脚本。通过Pydicom、Pillow和NumPy库的组合,解决了像素值处理、批量转换效率和医学图像特性保留等关键问题,适合医疗AI开发者和放射科医生快速集成到工作流中。

numpy6sculptor的博客 594

【Servlet】Servlet学习之基础篇(HTTP)

【Servlet】Servlet学习之基础篇(HTTP)

m0_52410356的博客 746

软件设计师---UML

软件设计师---UML

我从不打没有准备的仗! 1万+

java web 请求和响应 HttpServletResponse(五)

目标: 掌握HttpServletRequest对象的使用,HttpServletResponse对象的使用 熟悉请求转发和请求重定向 了解中文乱码问题的解决 一、HttpServletResponse对象 1.1发送状态码相关的方法 在Servlet API中,定义了一个HttpServletResponse接口,它继承自ServletResponse,专门用来封装HTTP响应消息。 在HttpServletResponse接口中,定义了两个发送状态码的方法: (1)setStatu.

diaolove的博客 4358

Flutter 自适应布局一套代码适配手机和平板(12)

通过LayoutBuilder组件动态检测屏幕尺寸,根据宽度阈值(600px)选择不同布局方式。在小屏幕上显示单页联系人分组,大屏幕采用侧边栏+详情面板的并排布局。核心实现包括:1)使用LayoutBuilder获取父容器约束条件;2)定义大屏幕和小屏幕的布局断点;3)构建响应式界面组件,其中大屏幕布局采用Row横向排列固定宽度侧边栏和弹性宽度的详情区域。这种方案可确保应用在不同设备上都能提供最佳显示效果。

hello.reader 319

Python爬虫实战:使用最新技术爬取路透社新闻数据

网络爬虫(Web Crawler)是一种自动获取网页内容的程序,是搜索引擎的重要组成部分。随着大数据和人工智能技术的发展,爬虫技术在数据采集、市场分析、舆情监控等领域发挥着越来越重要的作用。requests:同步HTTP请求库aiohttp:异步HTTP请求库:HTML解析库lxml:高效的HTML/XML解析库selenium:浏览器自动化工具playwright:现代浏览器自动化工具pandas:数据处理和分析库scrapy:专业的爬虫框架:生成随机User-Agentredis:缓存和分布式爬虫支持。

2201_76125261的博客 1205

java urlconnection 写二进制数据_Java HttpURLConnection 以数据流写数据到Servlet

***************************************************客户器端代码,响应请求流***************************************************import java.io.*;import java.net.HttpURLConnection;import java.net.URL;public class St...

weixin_35612315的博客 419

AUTOSAR从入门到精通-【应用篇】基于AUTOSAR架构的混合动力电池 ECU 软件开发

由于严峻的环境污染和能源短缺问题,各国都在致力于发展新能源车,以达到节能排放的目的。在此背景下,12V启停系统由于成本较低廉、匹配方便,得到广泛应用。但是12V系统作为启停系统后存在许多问题,比如节能和减排效果有限,并且轻度混合动力系统的功率需求通常在10~15KW,在此电压条件下运行时,电池的电流会达到1000A,因此该方案行不通。高压混合动力系统(>110V)的节油效果好,但是成本很高,并且需要大功率的电机。48V混合动力系统比高压混合动力系统成本。

getusushu的博客 1490

将集合以数据流方式发送给servlet

发送端代码 import java.io.ObjectOutputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; import org.slf

huangweiloveyou的专栏 814

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

HttpURLConnection 请求数据流的写入(write)和读取(read)

HttpURLConnection请求数据流的写入(write)和读取(read) URLConnection类给应用程序和web资源之间架设起了通信的桥梁,这些web资源通常是通过url来标记的,本文将讲述如何使用HttpURLConnection来访问web页面(发送数据流)和读取数据流。 在Servlet中对于需要用post方式(get会暴露参数)写入参数的时候就用到了HttpURL

bincavin的专栏 881

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

使用HttpURLConnection来请求WEB资源

1:> URL请求的类别:分为二类,GET与POST请求。二者的区别在于:      a:) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,      b:) post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。 2:> URLConnection的对象问题:URLConnection的对象,如下代码示...

wsq198760的专栏 173

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

通过httpurlconnection建立servlet与应用程序的通讯

曾经有一次需要实现应用程序调用ejb的服务,但是考虑因为其他应用程序可能是不同的语言,首先考虑的是用cobar,后来因为没有负责这个项目,没有继续深入去研究,最近因为项目的需要,考虑到cobar的一下弊端,自己寻求别的解决办法,后来搜集一下资料,最近利用servlet来实现与应用程序通讯.(扩展开来,就可以用serlvet调要ejb的东东了). 首先: 建立应用程序,限于技术的原因,利用j

2009

Android笔记(1)-如何接受servlet的数据(为什么会出错)

这次笔记不再考虑,sevelet是否完成,只是记录Android如何接受servelet中准备好了的数据,也不使用到json;纯粹就是简单的取数据; 首先有几点需要注意(出错点): 在Android中接受数据是URL地址最好是IP地址,尤其是连接本地的数据库的时候,我当时就直接使用localhost,结果报错了; 必须要在Android的AndroidManifest.xml文件中添加 &l...

孤独的狂欢 262
上一篇: SAX characters(char ch[],int start,int length) 数据不完整
下一篇: Android异步加载图像(含线程池,缓存方法)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值