使用httpurlConnection访问servlet
package study.servlet;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpurlConnection {
public static void main(String[] args) { } public static String callServlet(String urlPath, Object object , String encode) throws Exception{ String fk = ""; //创建连接 URL url = new URL(urlPath); HttpURLConnection urlConn = (HttpURLConnection)url.openConnection(); //设置是否向HttpURLConnection输出, //post请求参数放在http正文内,需要设置为true urlConn.setDoOutput(true); //设置是否从HttpURLConnection读入 urlConn.setDoInput(true); //post请求不能使用缓存 urlConn.setUseCaches(false); //设定传送的内容类型是可序列化的java对象 //(如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException) urlConn.setRequestProperty("Content-type","application/x-java-serialized-object"); //设置post方法 urlConn.setRequestMethod("POST"); //连接,上面对urlConn的所有配置必须在connect之前完成 urlConn.connect(); // 此处getOutputStream会隐含的进行connect (即:如同调用上面的connect()方法, // 所以在开发中不调用上述的connect()也可以)。 OutputStream out = urlConn.getOutputStream(); //通过输出流对象构建对象输出流对象,以实现可序列化的对象 ObjectOutputStream oos = new ObjectOutputStream(out); //向对象输出流中写数据,这些数据将存到内存缓冲区中 oos.writeObject(object); // 刷新对象输出流,将任何字节都写入潜在的流中(些处为ObjectOutputStream) oos.flush(); // 关闭流对象。此时,不能再向对象输出流写入任何数据,先前写入的数据存在于内存缓冲区中, // 再调用下边的getInputStream()函数时才把准备好的http请求正式发送到服务器 oos.close(); int code = urlConn.getResponseCode(); if(!(HttpURLConnection.HTTP_OK == code)){ throw new RuntimeException("请求返回异常,异常code:"+code); } // 调用HttpURLConnection连接对象的getInputStream()函数, // 将内存缓冲区中封装好的完整的HTTP请求电文发送到服务端 InputStream in = urlConn.getInputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); InputStream is = urlConn.getInputStream(); int off = 0; byte[] buff = new byte[512]; while ((off = is.read(buff)) != -1) { baos.write(buff, 0, off); } baos.flush(); baos.close(); in.close(); urlConn.disconnect(); fk = new String(baos.toByteArray(),encode); return fk; }
}

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
java基础学习_集合类03_用户登录注册案例(集合版)、Set集合、Collection集合总结_day17总结
==========================================================================================================================================================涉及到的知识点有: 1:用户登录注册案例(集合版)(理解) 2:Set集合(理解) (1)Set集合的特点 (2)HashSet集合(掌握) (3)TreeSet集合(理解) (4)案例3:Collection集合总结(掌握) 4:针对Collection集合我们到底使用谁呢?(掌握) 5:在集合中常见的数据结构(掌握)==========================================================================================================================================================1:用户登录注册案例(集合版)(理解)------------...
- 下一篇
Mac下python3安装mysqlclient
最近在搞Python web,需要用到mysql驱动,以前一直使用pymysql,听说Mysqlclient性能要比pymysql好一些,果断试试安装Mysqlclient,windows下安装倒没什么问题,mac上安装花了我一天时间才搞定,过程纪录在此。MySQLdb = Mysqlclient 导入包的时候需要 import MySQLdb, 安装的时候需要 pip3 install Mysqlclient 直接pip3 install Mysqlclient 报错如图: error1.png 1.执行brew unlink mysql-connector-c卸载之前的残渣, 2.执行brew install mysql安装 再次执行pip3 install mysqlclient报错如下: error2.png 查找mysql_config文件夹位置,一般在/usr/local/mysql/bin/这个路径下,解决方法: 将mysql_config链接到/usr/local/bin目录下ln -s /usr/local/mysql/bin/mysql_config /usr/lo...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7安装Docker,走上虚拟化容器引擎之路