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. maven invalid loc header

    项目部署之后出现如题错误 清除maven资源库原有的jar,重新下载即可解决

  2. maven copy jar 插件

     插件比较特殊 eclipse下的 首先声明插件 <pluginManagement> <plugin> <groupId>org.apache.maven.plu ...

  3. keepalived+nginx双机热备+负载均衡

    Reference: http://blog.csdn.net/e421083458/article/details/30092795 keepalived+nginx双机热备+负载均衡 最近因业务扩 ...

  4. python rabittmq 使用

    Reference: https://www.rabbitmq.com/tutorials/tutorial-three-python.html 1 "Hello World!" ...

  5. Winsock解析

    一.基本知识 1.Winsock,一种标准API,一种网络编程接口,用于两个或多个应用程序(或进程)之间通过网络进行数据通信.具有两个版本: Winsock 1: Windows CE平台支持. 头文 ...

  6. win8中的gridview和listview控件微软链接

    快速入门:添加 ListView 和 GridView 控件 http://msdn.microsoft.com/zh-cn/library/windows/apps/hh780650.aspx XA ...

  7. executor.Executor: Managed memory leak detected; size = 37247642 bytes, TID = 5

    https://stackoverflow.com/questions/34359211/debugging-managed-memory-leak-detected-in-spark-1-6-0 h ...

  8. [Linux实用工具]Windows下同步Linux文件(Linux安装Samba和配置)

    场景需求: 安装了Ubuntu在虚拟机上,但是代码编辑或者其它更多的操作的时候,还是习惯在windows下进行.如果windows下编辑完再上传到服务器,再编译执行,就太繁琐了.一次两次还好说,这编译 ...

  9. UIButton的竖排图片和文本

    UIButton的竖排图片和文本html, body {overflow-x: initial !important;}.CodeMirror { height: auto; } .CodeMirro ...

  10. 从零写Java Web框架——实现Ioc依赖注入

    大概思路 通过读取配置文件,获取框架要加载的包路径:base-package,类似于 Spring 配置文件中的: <context:component-scan base-package=&q ...