• Android网络开发之HttpURLConnection


    http是一个可靠的传输,建立在TCP/IP连接之上,缺省端口是80,其他端口号也可以用。Android可以用HttpURLConnection或HttpClient接口来开发http程序。

    http通信使用最多的是Get和Post。Post和Get的不同之处在于Get的参数放在URL字串中,而Post的参数放在http请求数据中。

    HttpURLConnection继承自URLConnection,都是抽象类,无法直接实例化对象。其对象主要通过URL的openConnection方法获得。

    openConnection方法只创建URLConnection或HttpURLConnection实例,但是不进行真正的连接操作,并且每次openConnection都创建一个新的实例。

    在连接之前,可以设置一些属性,比如超时时间等。

    HttpURLConnection默认使用Get方法,如果要使用Post方法,则需要使用setRequestMethod方法。

    // 示例代码:通过Post方式发送请求

    URL url = new URL(“http://www.google.com”);

    HttpURLConnection conn = (HttpURLConnection) url.openConnection();

    // 设置输入/出流

    conn.setDoOutput(true);

    conn.setDoInput(true);

    // 设置请求方式为Post

    conn.setRequestMethod(“POST”);

    // Post请求不能使用缓存

    conn.setUseCaches(false);

    conn.setInstanceFollowRedirects(true);

    // 设置Content-type

    conn.setRequestProperty(“Content-Type”,“application/x-www-form-urlencoded”);

    // 在调用getOutputStream时会隐式调用conn.connect()

    DataOutputStream dos = new DataOutputStream(conn.getOutputStream());

    String content = “name=” + URLEncoder.encode(“Jake”,“gb2312”);

    dos.writeBytes(content);

    dos.flush();

    dos.close();

    // 连接完成之后可以关闭这个连接

    conn.disconnect();

     

    // 示例代码:读取网页上的内容

    InputStreamReader isr = new InputStreamReader(conn.getInputStream());

    BufferedReader br = new BufferedReader(isr);

    String line = null;

    while(((line = br.readLine()) != null)) { … }

    // 关闭连接

    isr.close();

    conn.disconnect();

     

    // 示例代码:获取网络上的一张图片

    conn.setDoInput(true);

    conn.connect(); // 这条语句要不(待定)

    InputStream is = conn.getInputStream();

    // 将InputStream数据转换成Bitmap

    Bitmap bitmap = BitmapFactory.decodeStream(is);

    // 关闭数据流

    is.close();

  • 相关阅读:
    一类分治问题
    [POI2005]DWU-Double-row
    [SCOI2007]降雨量
    [POI2007]ODW-Weights(贪心)
    bzoj3427小P的牧场(斜率优化dp)
    UVA10559 Blocks(区间dp)
    LOJ6089 小Y的背包计数问题(根号优化背包)
    [APIO2008]免费道路(生成树)
    bzoj4383(拓扑排序)
    [HEOI2014]平衡(整数划分数)
  • 原文地址:https://www.cnblogs.com/fengzhblog/p/3185498.html
Copyright © 2020-2023  润新知