HttpURLConnection用法

在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();

 

 

转载于:https://www.cnblogs.com/yvanBk/p/8407477.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值