1. 引入所需网络请求类:

            var URL = plus.android.importClass("java.net.URL");
var URLConnection = plus.android.importClass("java.net.URLConnection");
var BufferedReader = plus.android.importClass("java.io.BufferedReader");
var InputStreamReader = plus.android.importClass("java.io.InputStreamReader");
var StrictMode = plus.android.importClass("android.os.StrictMode");

2. 忽略Android3.0开始强制程序不能在主线程中访问网络的强制策略

            //以下两句必加,不然会请求不了网络,原因:
//android3.0版本开始就强制程序不能在主线程中访问网络,要把访问网络放在独立的线程中。
//以下两句可以忽略这些强制策略。
var policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

3. 使用URL进行网络请求

            var httpConn = new URL("https://login.10086.cn/captchazh.htm?type=05&timestamp=" + nowtime).openConnection();
// 设置通用属性
httpConn.setRequestProperty("Accept", "*/*");
httpConn.setRequestProperty("Content-Type", "image/jpeg");
httpConn.setRequestProperty("Connection", "Keep-Alive");
//设置Cookie
//httpConn.setRequestProperty("Cookie", cookies);
httpConn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
// 建立实际的连接
httpConn.connect();

4. 获取请求头和Set-Cookie以及返回的数据:

            // 响应头部获取
var htmlHeads = [];
var cookies = "";
//取cookie
for (var i = 1; i <; i++) {
var key_ = httpConn.getHeaderFieldKey(i);
if (key_ == null){
console.log("--------------------------------"+cookies);
break;
}else{
htmlHeads.push(key_ + ':' +httpConn.getHeaderField(i));
if(key_ == "Set-Cookie") {
var cookie = httpConn.getHeaderField(i);
cookies += cookie.substring(0, cookie.indexOf(";")+1);
}
}
} //----------------获取输出 start----------------//
var reader = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), "UTF-8"));
var lines;
//输出数据
var response = "";
while ((lines = reader.readLine()) != null) {
response += lines;
}
reader.close();
//----------------获取输出 end----------------//

完整例子:

        function gocook() {
var nowtime = (new Date).getTime(); var URL = plus.android.importClass("java.net.URL");
var URLConnection = plus.android.importClass("java.net.URLConnection");
var BufferedReader = plus.android.importClass("java.io.BufferedReader");
var InputStreamReader = plus.android.importClass("java.io.InputStreamReader");
var StrictMode = plus.android.importClass("android.os.StrictMode"); //以下两句必加,不然会请求不了网络,原因:
//android3.0版本开始就强制程序不能在主线程中访问网络,要把访问网络放在独立的线程中。
//以下两句可以忽略这些强制策略。
var policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy); var httpConn = new URL("https://login.10086.cn/captchazh.htm?type=05&timestamp=" + nowtime).openConnection();
// 设置通用属性
httpConn.setRequestProperty("Accept", "*/*");
httpConn.setRequestProperty("Content-Type", "image/jpeg");
httpConn.setRequestProperty("Connection", "Keep-Alive");
//设置Cookie
//httpConn.setRequestProperty("Cookie", cookies);
httpConn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
// 建立实际的连接
httpConn.connect();
// 响应头部获取
var htmlHeads = [];
var cookies = "";
//取cookie
for (var i = 1; i <; i++) {
var key_ = httpConn.getHeaderFieldKey(i);
if (key_ == null){
console.log("--------------------------------"+cookies);
break;
}else{
htmlHeads.push(key_ + ':' +httpConn.getHeaderField(i));
if(key_ == "Set-Cookie") {
var cookie = httpConn.getHeaderField(i);
cookies += cookie.substring(0, cookie.indexOf(";")+1);
}
}
} //----------------获取输出 start----------------//
var reader = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), "UTF-8"));
var lines;
//输出数据
var response = "";
while ((lines = reader.readLine()) != null) {
response += lines;
}
reader.close();
//----------------获取输出 end----------------//
}

Hbuilder MUI里面使用java.net.URL发送网络请求,操作cookie的更多相关文章

  1. java通过java.net.URL发送http请求调用接口

    一般在*.html,*.jsp页面中我们通过使用ajax调用接口,这个是我们通常用的.对于这些接口,大都是本公司写的接口供自己调用,所以直接用ajax就可以.但是,如果是多家公司共同开发一个东西,一个 ...

  2. java 模拟浏览器发送post请求

    java使用URLConnection发送post请求 /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求 ...

  3. pythone函数基础(13)发送网络请求

    需要导入urllib模块,request模块发送网络请求有两种方法 第一种方法# from urllib.request import urlopen# from urllib.parse impor ...

  4. python发送网络请求

    1.使用urllib模块(使用不方便,建议使用第二种) get请求: res = urlopen(url) from urllib.request import urlopen url = 'http ...

  5. python 学习笔记之手把手讲解如何使用原生的 urllib 发送网络请求

    urllib.urlopen(url[,data[,proxies]]) : https://docs.python.org/2/library/urllib.html python 中默认自带的网络 ...

  6. 如何实现 Https拦截进行 非常规“抓包” 珍惜Any 看雪学院 今天 前段时间在自己做开发的时候发现一个很好用的工具,OKHttp的拦截器(何为拦截器?就是在每次发送网络请求的时候都会走的一个回调)大概效果如下:

    如何实现 Https拦截进行 非常规“抓包” 珍惜Any 看雪学院 今天 前段时间在自己做开发的时候发现一个很好用的工具,OKHttp的拦截器(何为拦截器?就是在每次发送网络请求的时候都会走的一个回调 ...

  7. java利用URL发送get和post请求

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  8. Java学习笔记--通过java.net.URLConnection发送HTTP请求

    http://www.cnblogs.com/nick-huang/p/3859353.html 使用Java API发送 get请求或post请求的步骤: 1. 通过统一资源定位器(java.net ...

  9. 通过java.net.URLConnection发送HTTP请求的方法

    一.前言 如何通过Java发送HTTP请求,通俗点讲,如何通过Java(模拟浏览器)发送HTTP请求. Java有原生的API可用于发送HTTP请求,即java.net.URL.java.net.UR ...

随机推荐

  1. Ubuntu 16.04 搭建KVM环境

      在Ubuntu 16.04下搭建KVM环境过程记录. 1 查看CPU是否支持KVM egrep "(svm|vmx)" /proc/cpuinfo 有结果输出,如下图: 2 安 ...

  2. Android实例-调用GOOGLE的TTS实现文字转语音(XE7+小米2)(XE10.1+小米5)

    相关资料: 注意:在手机上必须选安装文字转语音引擎“google Text To Speech”地址:http://www.shouji56.com/soft/GoogleWenZiZhuanYuYi ...

  3. C#学习笔记(18)——C#构造函数中this和base的使用

    说明(2017-7-21 10:29:44): 1. 关于构造函数里的this和base,在网上查了很多资料,但都没有讲的很清楚的,或者是能让我看懂的,感觉都是叽叽歪歪,罗里吧嗦,磨磨唧唧的,有的直接 ...

  4. IOS 禁止侧滑返回上个页面功能

    1.首先把顶部左侧返回按钮隐藏掉 //隐藏返回按钮 self.navigationItem.hidesBackButton = YES; 2.1.再禁止页面左侧侧 //禁止页面左侧滑动返回,注意,如果 ...

  5. java二维码的生成与解析代码

    二维码,是一种采用黑白相间的平面几何图形通过相应的编码算法来记录文字.图片.网址等信息的条码图片.如下图 二维码的特点: 1.  高密度编码,信息容量大 可容纳多达1850个大写字母或2710个数字或 ...

  6. Error Installing Tivoli Directory Server (TDS) for TNPMW1.3

    Install TDS with error "GLPCTL004E Failed to create database instance: 'ldapdb2'."   Error ...

  7. 编译安装Mysql与管理(十四)

    [教程主题]:编译安装Mysql与管理 [课程录制]: 创E [主要内容] [1]什么是Mysql MyQL是一个开放源码的小型关系型数据库管理系统,开发者为瑞典MySQL AB公司.目前MySQL被 ...

  8. SQLSERVER SQL备份还原代码C#

    public class BakDBHelper { /// <summary> /// 创建数据库备份 /// </summary> public string Create ...

  9. mssqlserver获取表说明和行数

    SELECT a.*,t.rows FROM ( ) ) AS a left join (, )) ) AS t ON a.表名=t.name

  10. struts2+hibernate(分页实现)

    //Dao类中实现了list集合和pagetotal方法 package zjf.strhib.Dao; import java.util.ArrayList; import java.util.Li ...