zoukankan      html  css  js  c++  java
  • 利用HttpURLConnection发送请求

    HttpURLConnection:

    每个 HttpURLConnection实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络。请求后在 HttpURLConnection 的 InputStream 或 OutputStream 上调用 close() 方法可以释放与此实例关联的网络资源,但对共享的持久连接没有任何影响。如果在调用 disconnect() 时持久连接空闲,则可能关闭基础套接字

    HttpURLConnection的父类是URLConnection

    今天写此文章的目的是由于工作中遇到ajax请求获取数据时碰到浏览器的跨域问题(由于javascript的同源策略导致的,同源就是两个页面有相同的协议、端口和主机),由于我们这边属于客户端,无法修改服务端代码,所以更改了请求方式,利用HttpURLConnection成功的解决跨域问题

    1.生成HttpURLConnection对象

    URL postUrl = new URL(url);
    HttpURLConnection conn = (HttpURLConnection)postUrl.openConnection();

    创建URL对象,通过openConnection方法创建URLConnection对象并强制转化成HttpURLConnection对象

    2.设置对应的方法参数,其中setRequestMethod为HttpURLConnection自有的方法

    conn.setConnectTimeout(20000);
    conn.setReadTimeout(30000);
    conn.setDoOutput(true);
    conn.setDoInput(true);
    conn.setUseCaches(true);
    conn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
    conn.setRequestMethod("GET");
    conn.connect();

    3.获取请求数据

    StringBuffer sb = new StringBuffer();
    BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
    String line = "";
    try{
        while((line = reader.readLine()) !=null){
            sb.append(line);
        }
            
    }catch(IOException e){
        e.printStackTrace();
    }
    try{
        reader.close();
    }catch(Exception e){
        e.printStackTrace();
    }
    conn.disconnect();
    return sb.toString();

    此次没有传参,直接通过getInputStream打开链接读取的输入流,并通过BufferedReader高级流读取数据,一行一行的append到StringBuffer中,成功获取数据。

    如果需要传入对应的参数要用到PrintWriter的print方法

    PrintWriter osw = new PrintWriter(conn.getOutputStream());
    osw.print(param);
    osw.flush();//刷新此流的缓冲
    osw.close();
  • 相关阅读:
    怎样重定向404页面?404页面重定向 PHP如何使404页面重定向
    css选择器(1)——元素选择器、类名和id选择器
    style对象的cssText方法
    css选择器(2)——属性选择器和基于元素结构关系的选择器
    js的闭包中关于执行环境和作用链的理解
    attachEvent和addEventListener
    使用js获取页面的各种高度
    课堂知识
    分析一个文本文件(英文文章)中各个词出现的频率,并且把频率最高的10个词打印出来。
    每日心情
  • 原文地址:https://www.cnblogs.com/ccylovehs/p/5774168.html
Copyright © 2011-2022 走看看