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. uboot第一阶段关键位置分析

    /* * the actual reset code */ reset: /* * set the cpu to SVC32 mode */ mrs r0,cpsr bic r0,r0,#0x1f o ...

  2. JD 题目1040:Prime Number (筛法求素数)

    OJ题目:click here~~ 题目分析:输出第k个素数 贴这么简单的题目,目的不清纯 用筛法求素数的基本思想是:把从1開始的.某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉.剩下 ...

  3. === $ spark sql 的特别的方法

    /** * Equality test. * {{{ * // Scala: * df.filter( df("colA") === df("colB") ) ...

  4. 自定义kafka Sink

    package my.bigdata; /** * Created by lq on 2017/8/22. */ import java.io.File; import java.io.FileInp ...

  5. MAC OSX 10.10 下启用自带的Apache的rewrite模块

    1.修改Apache配置文件 sudo vim /etc/apache2/httpd.conf LoadModule rewrite_module libexec/apache2/mod_rewrit ...

  6. 俞军的PM12条

     俞军的PM12条:1.PM首先是用户2.站在用户角度看待问题3.用户体验是一个完整的过程4.追求效果,不做没用的东西5.发现需求,而不是创造需求6.决定不做什么,往往比决定做什么更重要7.用户是很难 ...

  7. eclipse多个项目保存到gitee上一个仓库中

    自己练习创建到多个项目,想同步到gitee上一个仓库中. 1. 首先在gitee上创建项目springtest 2. 在eclipse默认项目存放到地方创建文件夹springtest,用来同步gite ...

  8. SERVER2012 FTP服务器和客户端配置

    SERVER2012 用IIS8 搭建的FTP 默认是主动模式的,导致花了一些时间去研究如何连接,总结了一下配置,希望能帮到需要的同学,以下介绍下步骤 1.服务器--计算机管理-用户-新建用户--默认 ...

  9. 性能测试-Gatling(一)

    背景说明转自 : http://www.infoq.com/cn/articles/new-generation-server-testing-tool-gatling/ 以前Jmeter用的多,如文 ...

  10. JSON的简单介绍以及C语言的JSON库使用

    JSON概述 JSON: JavaScript 对象表示法( JavaScript Object Notation) .是一种轻量级的数据交换格式. 它基于ECMAScript的一个子集. JSON采 ...