zoukankan      html  css  js  c++  java
  • 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();

     

    周永发
  • 相关阅读:
    一月十三号学习日报
    一月十四号学习日报
    一月六号学习日报
    ARP欺骗
    一月十一号学习日报
    vscode文件名重叠
    vue : 无法加载文件 C:Users1111111AppDataRoaming pmvue.ps1,因为在此系统禁止运行脚本
    成绩录入和查询
    node搭建服务器
    class和id的区别
  • 原文地址:https://www.cnblogs.com/yvanBk/p/8407477.html
Copyright © 2011-2022 走看看