您现在的位置是:首页 > 文章详情

使用httpurlConnection访问servlet

日期:2018-03-26点击:459

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; }

}

原文链接:https://yq.aliyun.com/articles/572185
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章