注册 登录
发贴工具
查看: 63|回复: 0
打印 上一主题 下一主题

[发贴软件现成脚本] AIWROK软件常用OKHTTP方法小结汇集

[复制链接]

2263

主题

2311

帖子

1万

积分

积分
13782
AIWROK软件常用OKHTTP方法小结汇集 群发软件发帖工具 AIWROK软件常用OKHTTP方法小结汇集 群发软件发帖工具 AIWROK软件常用OKHTTP方法小结汇集 群发软件发帖工具 AIWROK软件常用OKHTTP方法小结汇集 群发软件发帖工具


//方法1

/**
* OKHTTP工具模块 - 完整版
* 适用:ES5系统安卓 JavaScript引擎Rhino
* 最后更新:2025-04-09
*/

var OKHTTP = {
/**
* 发送HTTP GET请求
* @param {string} url 请求地址
* @param {string} [key] 请求头参数名
* @param {string} [value] 请求头参数值
* @param {string} [code='UTF-8'] 请求编码
* @returns {string|null} 响应内容或null(错误时)
*/
get请求: function(url, key, value, code) {
try {
// 基本参数校验
if (typeof url !== 'string') return null;

// 构建请求
var conn = new java.net.URL(url).openConnection();
conn.setRequestMethod("GET");

// 设置请求头
if (key && value) {
conn.setRequestProperty(key, value);
}

// 设置编码
var encoding = code || 'UTF-8';
conn.setRequestProperty("Accept-Charset", encoding);

// 获取响应
var responseCode = conn.getResponseCode();
if (responseCode >= 200 && responseCode < 300) {
var inStream = new java.io.BufferedReader(
new java.io.InputStreamReader(conn.getInputStream(), encoding)
);
var inputLine;
var response = new java.lang.StringBuffer();
while ((inputLine = inStream.readLine()) != null) {
response.append(inputLine);
}
inStream.close();
return response.toString();
} else {
printl("[GET请求错误] 状态码: " + responseCode);
return null;
}
} catch (e) {
printl("[GET请求异常] " + e.message);
return null;
}
}
};

// 测试示例
printl("=== HTTP GET测试 ===");
var 请求头名 = 'User-Agent';
var 请求头值 = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 QIHU 360SE/13.1.6380.0';
var 请求地址 = 'https://www.baidu.com';
var 请求编码 = 'UTF-8';
var ret = OKHTTP.get请求(请求地址, 请求头名, 请求头值, 请求编码);
if (ret) {
printl("请求成功,返回内容:");
printl(ret);
} else {
printl("请求失败");
}
//方法2

/**
* 字符串工具模块 - 完整版
* 适用:ES5系统安卓 JavaScript引擎Rhino
* 最后更新:2025-04-02
*/

var OKHTTP = {
// 原有方法保持不变...

json请求: function(url, data, key, value, code) {
try {
// 增强参数校验
if (typeof url !== 'string' || !url.startsWith('http')) {
printl("[参数错误] 无效的URL");
return null;
}
if (typeof data !== 'string') {
printl("[参数错误] 数据必须是字符串");
return null;
}

// 调试输出请求信息
printl("[请求调试] 目标URL: " + url);
printl("[请求调试] 请求数据: " + data.substring(0, Math.min(data.length, 100)) +
(data.length > 100 ? "..." : ""));

var conn = new java.net.URL(url).openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setConnectTimeout(5000);

// 设置编码和头信息
var encoding = code || "UTF-8";
conn.setRequestProperty("Content-Type", "application/json; charset=" + encoding);
conn.setRequestProperty("Accept", "application/json; charset=" + encoding);

if (key && value) {
conn.setRequestProperty(key, value);
printl("[请求调试] 设置请求头: " + key + ": " + value);
}

// 修正:使用Java的String类处理编码
var javaString = new java.lang.String(data);
var bytes = javaString.getBytes(encoding);

// 发送请求
var outStream = conn.getOutputStream();
outStream.write(bytes);
outStream.flush();
outStream.close();

// 处理响应
var responseCode = conn.getResponseCode();
printl("[响应调试] 状态码: " + responseCode);

if (responseCode >= 200 && responseCode < 300) {
var inStream = new java.io.BufferedReader(
new java.io.InputStreamReader(conn.getInputStream(), encoding)
);
var response = new java.lang.StringBuffer();
var line;
while ((line = inStream.readLine()) != null) {
response.append(line);
}
inStream.close();

var responseText = response.toString();
printl("[响应调试] 响应长度: " + responseText.length);
return responseText;
} else {
var errStream = new java.io.BufferedReader(
new java.io.InputStreamReader(conn.getErrorStream(), encoding)
);
var errorResponse = new java.lang.StringBuffer();
while ((line = errStream.readLine()) != null) {
errorResponse.append(line);
}
errStream.close();

printl("[响应错误] 状态码: " + responseCode);
printl("[响应错误] 错误详情: " + errorResponse.toString());
return null;
}
} catch (e) {
printl("[请求异常] " + e.toString());
return null;
}
}
};

// 测试示例
printl("=== 修复版中文JSON测试 ===");
var 测试数据 = JSON.stringify({
timestamp: new Date().getTime(),
test: "中文测试修复版",
data: "这里是没有乱码的中文内容"
});

var ret = OKHTTP.json请求(
'https://postman-echo.com/post',
测试数据,
'User-Agent',
'Mozilla/5.0'
);

if (ret) {
printl("测试成功,响应数据:");
printl(ret);
} else {
printl("测试失败");
}
//方法3

/**
* 字符串工具模块 - 完整版
* 适用:ES5系统安卓 JavaScript引擎Rhino
* 最后更新:2025-04-02
*/

var OKHTTP = {
// 原有方法保持不变...

/**
* 发送表单POST请求
* @param {string} url 请求地址
* @param {string|Object} map 表单数据(map对象或查询字符串)
* @param {string} [key] 请求头参数名
* @param {string} [value] 请求头参数值
* @param {string} [code='UTF-8'] 请求编码
* @returns {string|null} 响应内容或null(错误时)
*/
post请求: function(url, map, key, value, code) {
try {
// 参数校验
if (typeof url !== 'string' || !url.startsWith('http')) {
printl("[参数错误] 无效的URL");
return null;
}

// 处理map参数
var formData = '';
if (typeof map === 'string') {
formData = map;
} else if (typeof map === 'object') {
// 将map对象转换为查询字符串
for (var k in map) {
if (map.hasOwnProperty(k)) {
if (formData) formData += '&';
formData += encodeURIComponent(k) + '=' + encodeURIComponent(map[k]);
}
}
} else {
printl("[参数错误] map必须是字符串或对象");
return null;
}

// 调试输出
printl("[POST请求调试] 目标URL: " + url);
printl("[POST请求调试] 表单数据: " + formData.substring(0, 100) + (formData.length > 100 ? "..." : ""));

var conn = new java.net.URL(url).openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setConnectTimeout(5000);

// 设置编码和头信息
var encoding = code || "UTF-8";
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=" + encoding);

if (key && value) {
conn.setRequestProperty(key, value);
printl("[POST请求调试] 设置请求头: " + key + ": " + value);
}

// 发送请求数据
var outStream = new java.io.DataOutputStream(conn.getOutputStream());
outStream.writeBytes(formData);
outStream.flush();
outStream.close();

// 处理响应
var responseCode = conn.getResponseCode();
printl("[POST响应调试] 状态码: " + responseCode);

if (responseCode >= 200 && responseCode < 300) {
var inStream = new java.io.BufferedReader(
new java.io.InputStreamReader(conn.getInputStream(), encoding)
);
var response = new java.lang.StringBuffer();
var line;
while ((line = inStream.readLine()) != null) {
response.append(line);
}
inStream.close();

var responseText = response.toString();
printl("[POST响应调试] 响应长度: " + responseText.length);
return responseText;
} else {
var errStream = new java.io.BufferedReader(
new java.io.InputStreamReader(conn.getErrorStream(), encoding)
);
var errorResponse = new java.lang.StringBuffer();
while ((line = errStream.readLine()) != null) {
errorResponse.append(line);
}
errStream.close();

printl("[POST响应错误] 状态码: " + responseCode);
printl("[POST响应错误] 错误详情: " + errorResponse.toString());
return null;
}
} catch (e) {
printl("[POST请求异常] " + e.toString());
return null;
}
}
};

// 测试示例
printl("=== POST请求测试 ===");
var 测试数据 = {
a: 1,
b: 2,
c: "中文测试"
};

var ret = OKHTTP.post请求(
'https://postman-echo.com/post',
测试数据,
'User-Agent',
'Mozilla/5.0'
);

if (ret) {
printl("测试成功,响应数据:");
printl(ret);
} else {
printl("测试失败");
}
//方法4

/**
* 字符串工具模块 - 完整版
* 适用:ES5系统安卓 JavaScript引擎Rhino
* 最后更新:2025-04-02
*/

var OKHTTP = {
// 原有方法保持不变...

post请求表单: function(url, map, key, value, code) {
try {
// 参数校验
if (typeof url !== 'string' || !url.startsWith('http')) {
printl("[参数错误] 无效的URL");
return null;
}

// 处理map参数
var formData = '';
if (typeof map === 'string') {
formData = map;
} else if (typeof map === 'object') {
var params = [];
for (var k in map) {
if (map.hasOwnProperty(k)) {
var val = map[k];
if (val !== null && val !== undefined) {
params.push(
encodeURIComponent(k) + '=' +
encodeURIComponent(typeof val === 'object' ? JSON.stringify(val) : val)
);
}
}
}
formData = params.join('&');
} else {
printl("[参数错误] map必须是字符串或对象");
return null;
}

// 调试信息
printl("[表单POST调试] 目标URL: " + url);
printl("[表单POST调试] 表单数据: " + formData.substring(0, 100) + (formData.length > 100 ? "..." : ""));

var conn = new java.net.URL(url).openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setConnectTimeout(8000);
conn.setReadTimeout(10000);

// 设置编码和头信息
var encoding = code || "UTF-8";
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=" + encoding);

if (key && value) {
conn.setRequestProperty(key, value);
printl("[表单POST调试] 设置请求头: " + key + ": " + value);
}

// 修正:使用Java String类处理编码
var javaString = new java.lang.String(formData);
var outStream = conn.getOutputStream();
outStream.write(javaString.getBytes(encoding));
outStream.flush();
outStream.close();

// 处理响应
var responseCode = conn.getResponseCode();
printl("[表单POST响应] 状态码: " + responseCode);

if (responseCode >= 200 && responseCode < 300) {
var inStream = new java.io.BufferedReader(
new java.io.InputStreamReader(conn.getInputStream(), encoding)
);
var response = new java.lang.StringBuffer();
var line;
while ((line = inStream.readLine()) != null) {
response.append(line);
}
inStream.close();

var responseText = response.toString();
printl("[表单POST响应] 响应长度: " + responseText.length);
return responseText;
} else {
var errStream = new java.io.BufferedReader(
new java.io.InputStreamReader(conn.getErrorStream(), encoding)
);
var errorResponse = new java.lang.StringBuffer();
while ((line = errStream.readLine()) != null) {
errorResponse.append(line);
}
errStream.close();

printl("[表单POST错误] 错误响应: " + errorResponse.toString());
return null;
}
} catch (e) {
printl("[表单POST异常] " + e.toString());
return null;
}
}
};

// 测试示例
printl("=== 表单POST修复测试 ===");
var 测试数据 = {
username: "张三",
age: 25,
skills: ["编程","测试"],
meta: {vip: true}
};

var ret = OKHTTP.post请求表单(
'https://postman-echo.com/post',
测试数据,
'User-Agent',
'Mozilla/5.0'
);

if (ret) {
printl("测试成功,响应数据:");
printl(ret);
} else {
printl("测试失败");
}
//方法5

/**
* 字符串工具模块 - 完整版
* 适用:ES5系统安卓 JavaScript引擎Rhino
* 最后更新:2025-04-02
*/

var OKHTTP = {
// 原有方法保持不变...

/**
* 上传文件到服务器
* @param {string} url 请求地址
* @param {string} parameter 文件参数名
* @param {string} path 文件路径
* @param {string|Object} map 附加表单数据
* @param {string} [key] 请求头参数名
* @param {string} [value] 请求头参数值
* @param {string} [code='UTF-8'] 请求编码
* @returns {string|null} 响应内容或null(错误时)
*/
上传文件: function(url, parameter, path, map, key, value, code) {
try {
// 参数校验
if (typeof url !== 'string' || !url.startsWith('http')) {
printl("[参数错误] 无效的URL");
return null;
}
if (typeof path !== 'string') {
printl("[参数错误] 无效的文件路径");
return null;
}

// 准备表单数据
var formData = '';
if (map) {
if (typeof map === 'string') {
formData = map;
} else if (typeof map === 'object') {
var params = [];
for (var k in map) {
if (map.hasOwnProperty(k)) {
params.push(
encodeURIComponent(k) + '=' +
encodeURIComponent(map[k])
);
}
}
formData = params.join('&');
}
}

// 调试信息
printl("[文件上传调试] 目标URL: " + url);
printl("[文件上传调试] 文件参数: " + parameter);
printl("[文件上传调试] 文件路径: " + path);
if (formData) {
printl("[文件上传调试] 附加数据: " + formData.substring(0, 50) + (formData.length > 50 ? "..." : ""));
}

// 创建多部分请求
var boundary = "----WebKitFormBoundary" + java.lang.System.currentTimeMillis();
var conn = new java.net.URL(url).openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setConnectTimeout(10000);
conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);

if (key && value) {
conn.setRequestProperty(key, value);
printl("[文件上传调试] 设置请求头: " + key + ": " + value);
}

var outStream = new java.io.DataOutputStream(conn.getOutputStream());
var encoding = code || "UTF-8";
var lineEnd = "\r\n";
var twoHyphens = "--";

// 写入表单数据
if (formData) {
var parts = formData.split('&');
for (var i = 0; i < parts.length; i++) {
var part = parts.split('=');
if (part.length === 2) {
outStream.writeBytes(twoHyphens + boundary + lineEnd);
outStream.writeBytes('Content-Disposition: form-data; name="' +
java.net.URLDecoder.decode(part[0], encoding) + '"' + lineEnd);
outStream.writeBytes(lineEnd);
outStream.writeBytes(java.net.URLDecoder.decode(part[1], encoding) + lineEnd);
}
}
}

// 写入文件数据
var file = new java.io.File(path);
if (file.exists()) {
outStream.writeBytes(twoHyphens + boundary + lineEnd);
outStream.writeBytes('Content-Disposition: form-data; name="' + parameter + '"; filename="' + file.getName() + '"' + lineEnd);
outStream.writeBytes('Content-Type: application/octet-stream' + lineEnd);
outStream.writeBytes(lineEnd);

var fileInput = new java.io.FileInputStream(file);
var buffer = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, 4096);
var bytesRead;
while ((bytesRead = fileInput.read(buffer)) != -1) {
outStream.write(buffer, 0, bytesRead);
}
fileInput.close();
outStream.writeBytes(lineEnd);
} else {
printl("[文件错误] 文件不存在: " + path);
return null;
}

// 结束标记
outStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
outStream.flush();
outStream.close();

// 处理响应
var responseCode = conn.getResponseCode();
printl("[文件上传响应] 状态码: " + responseCode);

if (responseCode >= 200 && responseCode < 300) {
var inStream = new java.io.BufferedReader(
new java.io.InputStreamReader(conn.getInputStream(), encoding)
);
var response = new java.lang.StringBuffer();
var line;
while ((line = inStream.readLine()) != null) {
response.append(line);
}
inStream.close();

var responseText = response.toString();
printl("[文件上传成功] 响应长度: " + responseText.length);
return responseText;
} else {
printl("[文件上传错误] 服务器返回错误");
return null;
}
} catch (e) {
printl("[文件上传异常] " + e.toString());
return null;
}
}
};

// 测试示例
printl("=== 文件上传测试 ===");
var ret = OKHTTP.上传文件(
'https://postman-echo.com/post',
'myFile',
'/sdcard/test.jpg',
{desc: '测试文件', type: 'image/jpeg'},
'User-Agent',
'Mozilla/5.0'
);

if (ret) {
printl("上传成功,服务器响应:");
printl(ret);
} else {
printl("上传失败");
}
//方法6

/**
* 字符串工具模块 - 完整版
* 适用:ES5系统安卓 JavaScript引擎Rhino
* 最后更新:2025-04-02
*/

var OKHTTP = {
// 原有方法保持不变...

/**
* 下载网络文件到本地
* @param {string} url 文件URL地址
* @param {string} path 本地保存路径
* @param {string} [key] 请求头参数名
* @param {string} [value] 请求头参数值
* @param {string} [code='UTF-8'] 请求编码
* @returns {string|null} 下载文件路径或null(失败时)
*/
下载文件: function(url, path, key, value, code) {
try {
// 参数校验
if (typeof url !== 'string' || !url.startsWith('http')) {
printl("[参数错误] 无效的URL");
return null;
}
if (typeof path !== 'string') {
printl("[参数错误] 无效的保存路径");
return null;
}

// 调试信息
printl("[文件下载调试] 资源URL: " + url);
printl("[文件下载调试] 保存路径: " + path);

var conn = new java.net.URL(url).openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(10000);
conn.setReadTimeout(30000);

// 设置请求头
if (key && value) {
conn.setRequestProperty(key, value);
printl("[文件下载调试] 设置请求头: " + key + ": " + value);
}

// 获取文件流
var inStream = conn.getInputStream();
var file = new java.io.File(path);

// 确保目录存在
file.getParentFile().mkdirs();

// 写入文件
var outStream = new java.io.FileOutputStream(file);
var buffer = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, 4096);
var bytesRead;
var totalBytes = 0;

while ((bytesRead = inStream.read(buffer)) != -1) {
outStream.write(buffer, 0, bytesRead);
totalBytes += bytesRead;
}

// 关闭流
outStream.flush();
outStream.close();
inStream.close();

printl("[文件下载完成] 文件大小: " + totalBytes + " bytes");
return path;

} catch (e) {
printl("[文件下载异常] " + e.toString());
return null;
}
}
};

// 测试示例
printl("=== 文件下载测试 ===");
var ret = OKHTTP.下载文件(
'https://example.com/test.zip',
'/sdcard/downloads/test.zip',
'User-Agent',
'Mozilla/5.0'
);

if (ret) {
printl("文件下载成功,保存路径: " + ret);
} else {
printl("文件下载失败");
}
//方法7

/**
* 字符串工具模块 - 完整版
* 适用:ES5系统安卓 JavaScript引擎Rhino
* 最后更新:2025-04-02
*/

var OKHTTP = {
// 存储全局请求头
_headers: {},

// 原有方法保持不变...

/**
* 清除所有自定义请求头
* @returns {boolean} 是否成功
*/
清除header: function() {
try {
// 统计被清除的header数量
var count = Object.keys(this._headers).length;

// 清空headers对象
this._headers = {};

printl("[header清除] 已移除 " + count + " 个请求头");
return true;
} catch (e) {
printl("[header清除异常] " + e.toString());
return false;
}
},

// 修改原有方法,使用_headers存储请求头
get请求: function(url, key, value, code) {
try {
var conn = new java.net.URL(url).openConnection();
// 应用全局headers
for (var h in this._headers) {
conn.setRequestProperty(h, this._headers[h]);
}
// ...其余代码不变
} catch(e) { /* ... */ }
},

// 其他方法也做类似修改...
};

// 测试示例
printl("=== header清除测试 ===");
OKHTTP._headers = {
'User-Agent': 'TestAgent',
'X-Token': '123456'
};
printl("清除前header数: " + Object.keys(OKHTTP._headers).length);
var result = OKHTTP.清除header();
printl("清除结果: " + result);
printl("清除后header数: " + Object.keys(OKHTTP._headers).length);

1. 模块概述

OKHTTP工具模块是一个用于在ES5系统安卓JavaScript引擎Rhino环境下发送HTTP请求的工具集。它提供了多种HTTP请求方法,包括GET请求、JSON请求、表单POST请求、文件上传和下载等。每个方法都包含了参数校验、请求构建、响应处理以及异常捕获等逻辑,以确保请求的稳定性和可靠性。

2. 主要功能

2.1 GET请求

  • 功能:发送HTTP GET请求到指定URL,并返回响应内容。
  • 参数
    • url:请求地址。
    • key:请求头参数名(可选)。
    • value:请求头参数值(可选)。
    • code:请求编码,默认为'UTF-8'(可选)。
  • 返回值:响应内容或null(错误时)。

2.2 JSON请求

  • 功能:发送JSON格式的POST请求到指定URL,并返回响应内容。
  • 参数
    • url:请求地址。
    • data:JSON格式的请求数据。
    • key:请求头参数名(可选)。
    • value:请求头参数值(可选)。
    • code:请求编码,默认为'UTF-8'(可选)。
  • 返回值:响应内容或null(错误时)。

2.3 表单POST请求

  • 功能:发送表单数据的POST请求到指定URL,并返回响应内容。
  • 参数
    • url:请求地址。
    • map:表单数据,可以是字符串或对象。
    • key:请求头参数名(可选)。
    • value:请求头参数值(可选)。
    • code:请求编码,默认为'UTF-8'(可选)。
  • 返回值:响应内容或null(错误时)。

2.4 文件上传

  • 功能:上传文件到指定服务器,并返回响应内容。
  • 参数
    • url:请求地址。
    • parameter:文件参数名。
    • path:文件路径。
    • map:附加表单数据,可以是字符串或对象(可选)。
    • key:请求头参数名(可选)。
    • value:请求头参数值(可选)。
    • code:请求编码,默认为'UTF-8'(可选)。
  • 返回值:响应内容或null(错误时)。

2.5 文件下载

  • 功能:从指定URL下载文件到本地,并返回保存路径。
  • 参数
    • url:文件URL地址。
    • path:本地保存路径。
    • key:请求头参数名(可选)。
    • value:请求头参数值(可选)。
    • code:请求编码,默认为'UTF-8'(可选)。
  • 返回值:下载文件路径或null(失败时)。

2.6 清除所有自定义请求头

  • 功能:清除存储的全局请求头。
  • 返回值:是否成功清除请求头。

3. 示例分析

每个方法都提供了详细的测试示例,包括请求参数的设置、请求的发送以及响应的处理。这些示例不仅展示了如何使用这些方法,还提供了调试信息输出的示例,有助于开发者在开发过程中进行问题排查。.


untoAIWROK软件字符方法集合小结nextAIWROK软件HID点击方法的方法集合小结
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读了
    采集亚马逊正版群发工具有没有?
    Apr.20旅行X心语今天来说说YYPOST新功能的一个灵活用法,采集亚马逊商品信息,并且获得排名的软件,亚马逊现在越来越多客户做,淘宝的水是越来越清了,以前做电商的客户,现在都转战到外国,最赚钱的要数一些客户往亚马逊里堆了吧,拿我这个YYPOST的客户,最多的是采集,分析排名,刷价格,刷数量,改价,刷访问量等等技术

    企业发展B2B网站有什么东东软件可以发呢
    标题企业发展网B2B软件,现在虽然B2B网站收录不错,可愁的是心急的人们,他们太想一口吃撑胖子了,发帖宣传虽然不能像佛系那样淡定,但也不能像跑火车那般急躁对待,自己内容不收录,完全是自己操作内容问题,可以参考一下别人的内容是怎么弄的,然后自己要试着转变,而且收录这个内容,常常会变化的,不是一种规则就吃到老

    搜房天下房聊软件哪一个好呢
    本帖最后由 发帖软件 于 2019-5-22 16:15 编辑 2搜房天下群发房聊信息软件,开始本来打算做58同城的,但发一个就要一次点触验证码,这就让人没有感觉到存在的价值了吧,都是卖二手房和新房的搜房天下倒是可以发即时聊天信息,也没有发现他这个网站有啥子限制,登陆一个搜房天下账号,然后采集回来分类列表的网址,然后就一

    大家坛有没有好用的群发工具下载呢
    当你的笑容给我礼貌的招呼,大家坛全自动发帖软件,宣传推广是一场持久战,总是有一些人把软件用了一天,或是几个小时,就觉得自己付出太多了,那加进来的粉丝,或是流量,应该是和宣传多少成正比的,其实没有这么便宜的事,就像很多阅读量超过一百万的视频,或是电影,真正会在屏幕打赏的人不会超过三千,真正大额打赏给主

    群发正版软件中国塑料网
    中国塑料网群发软件YYPOST脚本下载地址,这个网站会有一个很奇怪的问题就是你在首页登陆无半个验证码,但在登陆网址登陆就会有一个验证码,所以我们灵活一些,在首页登陆就不用输入验证码了哈。网站秒收录比较高,但发的都是五金和建筑行业,先前有很多人都是发土建工程的大公司操作的,现在这个网站专为那个行业诞生的吧。

    OpenStreetMap网站正版2019年发帖工具下载
    本帖最后由 发帖软件 于 2019-5-21 11:13 编辑 OpenStreetMap网站全自动群发,OpenStreetMapOpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。有的人编辑地图然后等收录,有的人发日志等收录,我们这里也是利用地图日志做为宣传的目标,简单的脚本理

    搜房天下全自动收短信全自动识别验证码注册账号软件
    房天下自动注册机,这个脚本是前几天发房聊的脚本廷伸品种,这个脚本能做到自动注册账号,自动保存账号,自动发房聊的效果,不过今天我们主要说一说怎么注册账号写脚本吧,这个搜房天天下的账号,可以发提问,可以发房聊,发论坛,发博客,还有发个人中心页都是有秒收的效果的,这样就省去了去买号,去乱花钱的效果了吧,而

    企业邮箱安卓端有什么APP软件可以发的呢
    请输入标题企业邮箱安卓发发送邮箱脚本,这个脚本是利用企业邮箱进行群发的,全程是一种模拟手工操作的过程,所以封号是很少的,而且企业邮箱群发到普通QQ邮箱不容易进垃圾箱中的,所以这个脚本也是这样的原理,不过最好是利用一些多开器,登陆多点的QQ邮箱账号会比较流畅一些,然后用软件一个一个的切换APP进行群发邮件会

    头条留评论软件有没有好用的呢?
    今天整一个今日头条留言软件,对于留言YYPOST是优势是比较大的存在,因为他往往专注一些下拉定位的优点,像今日头条这样,还是需要一些特殊下拉定位的,因为他新闻有长有短,有图有视频的,所以综合起来定位是比较难的,如果用POST也不是很轻松可以破解他的加密参数。这个脚本也是有一个不好的地方就是换号会比较麻烦,您电

    单网页生成神器
    最近新技术,网页生成机占领了整个网络的半壁江山,效果很疯狂,虽然不知道能持续多久,作为开发软件的领头者,一直在找收录的方法,一直在努力创新着,一直被人模仿,却从没有被超越过,这个网页生成机,已经出来有一段时间了,一直没有拿出来分享,醉过醉过,它是利用的一些小小收录漏洞整的,您最好用一些老站域名,进行

关闭
快速回复 返回列表 返回顶部
本站自动发贴软件,是现在最流行的做脚本软件,这种发贴工具,不但发贴收录快,而且抢占好的先机,完全自由编辑,实现针对性群发模拟操作,软件可以顶贴,也可以发贴,可以兼容支持Discuz、PHPWind、Dvbbs三大主流论坛,有手机验证码收件,邮件收发的功能,支持验证码识别,注册问题识别,多线程任务,自动上传头像,自动激活注册邮件,兼容防注册插件,本站软件原创正版,更新效率最快的原创软件。 『网络推广软件』『自动发帖软件』『 自动发帖