Hbuilder MUI里面使用java.net.URL发送网络请求,操作cookie
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×tamp=" + 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×tamp=" + 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的更多相关文章
- java通过java.net.URL发送http请求调用接口
一般在*.html,*.jsp页面中我们通过使用ajax调用接口,这个是我们通常用的.对于这些接口,大都是本公司写的接口供自己调用,所以直接用ajax就可以.但是,如果是多家公司共同开发一个东西,一个 ...
- java 模拟浏览器发送post请求
java使用URLConnection发送post请求 /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求 ...
- pythone函数基础(13)发送网络请求
需要导入urllib模块,request模块发送网络请求有两种方法 第一种方法# from urllib.request import urlopen# from urllib.parse impor ...
- python发送网络请求
1.使用urllib模块(使用不方便,建议使用第二种) get请求: res = urlopen(url) from urllib.request import urlopen url = 'http ...
- python 学习笔记之手把手讲解如何使用原生的 urllib 发送网络请求
urllib.urlopen(url[,data[,proxies]]) : https://docs.python.org/2/library/urllib.html python 中默认自带的网络 ...
- 如何实现 Https拦截进行 非常规“抓包” 珍惜Any 看雪学院 今天 前段时间在自己做开发的时候发现一个很好用的工具,OKHttp的拦截器(何为拦截器?就是在每次发送网络请求的时候都会走的一个回调)大概效果如下:
如何实现 Https拦截进行 非常规“抓包” 珍惜Any 看雪学院 今天 前段时间在自己做开发的时候发现一个很好用的工具,OKHttp的拦截器(何为拦截器?就是在每次发送网络请求的时候都会走的一个回调 ...
- java利用URL发送get和post请求
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- Java学习笔记--通过java.net.URLConnection发送HTTP请求
http://www.cnblogs.com/nick-huang/p/3859353.html 使用Java API发送 get请求或post请求的步骤: 1. 通过统一资源定位器(java.net ...
- 通过java.net.URLConnection发送HTTP请求的方法
一.前言 如何通过Java发送HTTP请求,通俗点讲,如何通过Java(模拟浏览器)发送HTTP请求. Java有原生的API可用于发送HTTP请求,即java.net.URL.java.net.UR ...
随机推荐
- 怎样把任意exe程序注册成windows系统服务(手动注册服务)
1. 要实现这个功能要用到微软提供的两个小工具“instsrv.exe”和“srvany.exe”(下载地址:http://www.cr173.com/soft/64394.html). 先下载这两个 ...
- Bootstrap+Angularjs自制弹框
指令 directive('bsPopup', function ($parse) { return { require: 'ngModel', restrict: 'A', link: functi ...
- org.apache.hadoop.hbase.MasterNotRunningException解决策略
执行HBase时常会遇到个错误,我就有这种经历. ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times 检 ...
- 记录 am335x 因为 pinmux 配置不对导致 不断的原因
其实很简单,是因为 中断不仅仅需要 gpio 的 input 属性, 还需要 pull_up 的数据 {"gpmc_ad11.gpio0_27", OMAP_MUX_MODE7 | ...
- python list数据写入文件
看代码 def writeLmk(self,fileName,landmarks): fp = open(fileName,'w+') fp.write( "version: 1" ...
- [开发笔记]-实现winform半透明毛玻璃效果
亲测win7下可用,win8下由于系统不支持Aero效果,所以效果不是半透明的. 代码: 博客园插入不了代码了..... public partial class Form1 : Form { int ...
- 怎么让win7右下角只显示时间不显示日期 ?(可行)
测试环境:win7(win10没发现以下选项) 任务栏空白处右键 → 属性 勾选 使用小图标 确定即可,图标太小的话,右键任务栏,把锁定任务栏前的勾去掉,然后把任务栏拉宽点你就看到了.
- Anaconda下载(改变了镜像路径,下载速度很快!!!)
Anaconda下载(改变了镜像路径,下载速度很快!!!) 使用conda install 包名 安装需要的Python非常方便,但是官方的服务器在国外,因此下载速度很慢,国内清华大学提供了Anaco ...
- c# dump 程序崩溃 windbg
待研究 http://issf.blog.163.com/blog/static/194129082201002534895/ http://www.cppblog.com/woaidongmao/a ...
- linux 获取网卡信息
sar -n DEV 2 10:41:37 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s10:41:39 AM eth ...