在SDK中的URLConnection链接Servlet的问题

1.URL的请求分类GET和POST

GET请求可以获取页面静态的值,参数放URL后,传给Serverlct

POST的参数是存放于http请求的正文中

2.URLConnection的对象问题

根据URL生成URLconnection,URLConnection在转成HttpUrlConnection.

URL url = new URL("www.baidu.com");

HttpUrlConnection httpUrlConnection = (HttpURLConnection) url.openConnection();

3.HttpURLConnection对象参数问题

设置是否向HttpURLConnection输出,因为这个是Post请求,参数要放在http正文中,因此要设置为true

httpUrlConnection.setDoOutput(true);

设置是否从httpUrlConnection读入,默认情况下是true

httpUrlConnection.setDoInput(true);

Post请求不能使用缓存

httpUrlConnection.setUseCaches(false);

设定传输的内容结果是可以序列化的JAVA对象

(假设不设置,在传送序列化对象时,当WEB服务器默认的不是这种类型时可能抛出java.io.eofexcrption)

httpUrlConnection.setRequestProperty("Content-type","application/x-java-serialized-object");

//设定请求的方式必须是POST,默认时GET

httpUrlConnection.setRequestMethod("Post");

分装完毕

httpUrlConnection.connect();

getOutPutStream会隐含着connect,所以在开发环境中不调用上述的connect()也可以

OutputStream outStrm = httpUrlConnection.getOutputStream()

现在通过输出流对象构建对象的输出流,以实现输出可序列化的对象

OutputStreamWriter out =  new  OutputStreamWriter(httpUrlConnection.getOutputStream(), "UTF-8");

向对象输出流写数据,这些数据保存到内存中

objectOutputStream.writeObject("测试字符串")

//刷新对象输出流,将任何字节都写入潜在流中
objOutputStm.flush()

// 定义BufferedReader输入流来读取URL的响应
        BufferedReader    in = new BufferedReader( new InputStreamReader(conn.getInputStream(), "UTF-8"));
   String line

  StringBuilder result = new StringBuilder();;

while ((line = in.readLine()) != null) {
                result.append(line);
            }

用finally{

关闭输出流和输入流。

in.close();

}

//关闭流对象,不在对输出流对象写入任何东西,先前写入的数据存在于缓存中

objOutputStm.close();

调用httpURLConnection连接对象的getInputStream()函数

将内存缓冲区封装好完整的HTTP请求电文发送到服务端

InputStream  inStrm = httpConn.getInputStream();

最新文章

  1. ASP.NET Web API 配置 JSONP
  2. IT人生知识分享:博弈论的理性思维
  3. 泛微OA7.0下载7.1下载
  4. spring bean的初始化
  5. 全面理解HTTP
  6. 对于HIVE架构的理解
  7. HTML5音乐播放器
  8. linux安装rz和sz
  9. Java宝典(三)
  10. 浅谈postMessage多页面监听事件
  11. 学生成绩管理系统——C语言实现
  12. 吞吐量(TPS)、QPS、并发数、响应时间(RT)概念
  13. 错误解决记录------------rhel安装Mysql软件包依赖 mariadb组件
  14. 012_call和apply区别
  15. HBase Python API
  16. printf打印输出null问题的跟踪
  17. MySQL MTS复制: hitting slave_pending_jobs_size_max
  18. 编写高质量代码_改善C++程序的150个建议 读书笔记
  19. 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!
  20. [朴孝敏/Loco][Nice Body]

热门文章

  1. AFO
  2. codeforce 375_2_b_c
  3. hdu_1019Least Common Multiple(最小公倍数)
  4. c语言基础学习04
  5. Spark学习笔记1(初始spark
  6. PHP中的GetType和SetType
  7. OKMX6Q libx264交叉编译
  8. 修改Weblogic jdk版本
  9. 关于 httpUrlConnection 的 setDoOutput 与 setDoInput的区别
  10. eclipes快捷键