HttpURLConnection 请求数据流的写入(write)和读取(read)_第1页
HttpURLConnection 请求数据流的写入(write)和读取(read)_第2页
HttpURLConnection 请求数据流的写入(write)和读取(read)_第3页
HttpURLConnection 请求数据流的写入(write)和读取(read)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(=1读取(read)URLConnection类给应用程序和web资源之间架设起了通信的桥梁,这些web资源通常是通过url来标记的,本文将讲述如何使用HttpURLConnection来访问web页面(发送数据流)和读取数据流。在Servlet中对于需要用post方式(get会暴露参数)写入参数的时候就用到了HttpURLConnection.请求的Servlet,也可以写入main方法中进行测试packagecom;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.lnputStreamReader;importjava.io.OutputStream;importjava.io.OutputStreamWriter;.HttpURLConnection;.URL;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;@SuppressWarnings("serial")publicclassIOServletextendsHttpServlet日El{申申/**卜*/卜*/申申publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException申申System.out.println("beginsend");I StringinputParam="<?xmlversion=\"1.0\"encoding=\"UTF-8\"?><page><username〉爱心天使</usernaem><age>26</age></page>";URLurl=null;HttpURLConnectionhttpConn=null;OutputStreamoutput=null;

OutputStreamWriteroutr=null;url=newURL(":8888/iotest/ReadServlet");httpConn=(HttpURLConnection)url.openConnection();HttpURLConnection.setFollowRedirects(true);httpConn.setDoOutput(true);httpConn.setRequestMethod("POST");httpConn.setRequestProperty("Content-Type","text/xml");httpConn.connect();output=httpConn.getOutputStream();outr=newOutputStreamWriter(output);//写入请求参数outr.write(inputParam.toString().toCharArray(),0,inputParam.toString().length());outr.flush();outr.close();System.out.println("sendok");intcode=httpConn.getResponseCode();System.out.println("code"+code);System.out.println(httpConn.getResponseMessage());〃读取响应内容StringsCurrentLine="";StringsTotalString="";申申卜申申if申申卜申申{java.io.lnputStreamis=httpConn.getInputStream();BufferedReaderreader=newBufferedReader(newInputStreamReader(is));while((sCurrentLine=reader.readLine())!=null)if(sCurrentLine.length()>0)sTotalString=sTotalString+sCurrentLine.trim();}else{sTotalString="远程服务器连接失败,错误代码:"+code;}System.out.println("response:"+sTotalString);publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

this.doGet(request,response);}ReadServlet(相当于被请求的服务器):packagecom;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.ServletInputStream;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;@SuppressWarnings("serial")publicclassReadServletextendsHttpServlet日EE1{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{System.out.println("beginread");ServletInputStreaminStream=request.getInputStream();//取HTTP请求流intsize=request.getContentLength();//取HTTP请求流长度byte[]buffer=newbyte[size];//用于缓存每次读取的数据Ibyte[]in_b=newbyte[size];//用于存放结果的数组Iintcount=0;intrbyte=0;//循环读取申申II申申II申申I

卜I

卜{rbyte=inStream.read(buffer);//每次实际读取长度存于rbyte中sfljfor(inti=0;i<rbyte;i++){in_b[count+i]=buffer[i];}count+=rbyte;}System.out.println("result:"+newString(in_b,0,in_b.length));response.setContentType("text/html");//注意响应中文数据时要设置response.setCharacterEncoding("GBK");PrintWriterout=response.ge

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论