资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
(=1读取(read)URLConnection 类给应用程序和 web 资源之间架设起了通信的桥梁,这些 web 资源通常是通过 url 来标记的,本文将讲述如何使用 HttpURLConnection 来访问 web 页面(发送数据流)和读取数据流。在 Servlet 中对于需要用 post 方式 (get 会暴露参数 )写入参数的时候就用到了 HttpURLConnection.请求的Servlet,也可以写入main方法中进行测试package com;import java.io.BufferedReader;import java.i o.I OExcepti on;import java.i o.ln putStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java .n et.HttpURLC onn ecti on;import java .n et.URL;import javax.servlet.ServletExcepti on;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResp onse;SuppressWar nin gs(serial)public class IOServlet extends HttpServlet日El申申 /*卜*/申申public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletExceptio n, I OExcepti onSystem.out.pr intln (beg in sen d);IStri ng in putParam = user name爱心天使26;URL url = n ull;HttpURLCo nn ection httpC onn = null;OutputStream output = nu ll;OutputStreamWriter outr = null;url = new URL(http:/127.0.0.1:8888/iotest/ReadServlet); httpC onn = (HttpURLC onn ecti on) url.ope nConn ecti on (); HttpURLCo nn ectio n.setFollowRedirects(true);httpC onn .setDoOutput(true);httpCo nn. setRequestMethod(POST);httpC onn .setRequestProperty(C onten t-Type, text/xml); httpC onn.conn ect();output = httpC onn .getOutputStream();outr = new OutputStreamWriter(output);/写入请求参数outr.write(inputParam.toString().toCharArray(), 0, inputParam .toStri ng().le ngth();outr.flush();outr.close();System.out.pr intln (se nd ok);int code = httpC onn. getResp on seCode();System.out.pr in tl n(code + code);System.out.pri ntl n( httpC onn .getResp on seMessage();读取响应内容Stri ng sCurre ntLi ne =;Stri ng sTotalStr ing =;申申卜申申if (code = 200)java.i o.ln putStream is = httpC onn. get In putStream();BufferedReader reader = new BufferedReader(new In putStreamReader(is);while (sCurre ntLi ne = reader.readL in e() != n ull)if (sCurrentLine.length() 0)sTotalStr ing = sTotalStr ing + sCurre ntLi ne.trim(); elsesTotalStri ng =远程服务器连接失败,错误代码:+ code;System.out.pr intln (resp on se: + sTotalStri ng);public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletExceptio n, I OExcepti onthis.doGet(request, resp on se); ReadServlet(相当于被请求的服务器):package com;import java.i o.I OExcepti on;import java.io.Pr in tWriter;import javax.servlet.ServletExcepti on;import javax.servlet.Servlet In putStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResp onse;SuppressWar nin gs(serial)public class ReadServlet extends HttpServlet 日 EE1public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOExcepti onSystem.out.pr intln (beg in read);Servlet Inp utStream in Stream = request.get In putStream(); / 取 HTTP 请求流 int size = request.getContentLength(); / 取 HTTP 请求流长度 byte buffer = new bytesize; /用于缓存每次读取的数据I byte in_b = new bytesize; / 用于存放结果的数组I int count = 0;in t rbyte = 0;/循环读取申申II申申I卜I卜while (co unt size)rbyte = inStream.read(buffer); / 每次实际读取长度存于 rbyte 中 sflj for (int i = 0; i rbyte; i+)in _bco unt + i = bufferi;count += rbyte;System.out.pr intln (result: + new Stri ng(i n_b,0,i n_b.len gth);resp on se.setC onten tType(text/html);/注意响应中文数据时要设置resp on se.setCharacterE ncodi ng(GBK);Pri ntWriter out = resp on se.getWriter();/回与响应数据out.write(”您已经请求成功,这是响应数据!);public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletExceptio n, I OExcepti onthis.doGet(request, resp on se);
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号