nodejs 或 浏览器js 代码

使用 nodejs 代码仅供参考 请按照您的实际情况书写代码 ,浏览器环境自带fetch 函数,不需要require

可以使用 npm 安装 node-fetch 查询当前使用的镜像源:`npm get registry` 设置为淘宝镜像源:`npm config set registry https://registry.npmmirror.com/` 还原为官方镜像源:`npm config set registry https://registry.npmjs.org/` 安装node-fetch npm i node-fetch

js 代码



  

import fetch from 'node-fetch' ;

import fs from 'node:fs' ;

//import iconv from 'iconv-lite' ;

//const fetch = require('node-fetch'); //浏览器环境不用引用直接使用下面代码 

//const fs = require('node:fs');

function base64_encode(data){

	let buff = Buffer.from(data, 'utf-8');;

	return  buff.toString('base64');

}

function base64_decode(base64){ 

	const buff = Buffer.from(base64, 'base64');



	// decode buffer as UTF-8

	const str = buff.toString('utf-8');

	return  str;

	//return  buff.toString('base64');

}

 

 

(async () => {

	try {

		const url = 'http://aa.fatiegongju.com/';

		

		const params = new URLSearchParams();

		params.append('dati_type', 8091); //答题类型

		params.append('acc_str', 'xxxxxxxxxxxx'); //登录账号查询自己的答题密码串

		params.append('extra_str', 'xxxxxxxxxxxx'); //备注 以便答题人员能够理解答题的意思

		params.append('zz', 'xxxxxxxxxxxx'); //作者帐号(给予返利)

		params.append('pri', '9'); //优先级

		params.append('timeout', '70'); //70秒 可以设置别的时间 ,建议不要太短,否则答题无法及时返回

		

		const imgdata = fs.readFileSync('/mnt/e/dama/test7.jpg');  //浏览器环境参考其他方式获取 

 

		let imgdatabase64 =base64_encode(imgdata);

		params.append('pic', imgdatabase64); //使用base64 加密

		



		//#可以使用base64 编码图片数据  		

		const res = await fetch( url +'api/upload', {method: 'POST', body: params});

		const body = await res.text( );

		if(body.substr(0,1)=='#'){

			console.log("提交图片错误"); 

			return;

		}

		const questid = body;

		let questreqid = setInterval(function(){

			const res2 = await fetch( url +'api/result?sid=' + questid);

			const body2 = await res2.text( );

			if(!body2){

				return;

			}

			if(body2.substr(0,1)=='#'){

				console.log("提交图片错误"); 

				clearInterval(questreqid);

				return;

			}

			console.log("答题结果是",body2);

			clearInterval(questreqid);

			

		},5000);  

	} catch (err) {

		console.log('Error:', err.message);

		console.log(err);

	}

})();

说明:xxxxxxxxxxxxxxx替换成密码串 提交成功后会返回一组字符串 直接用这个字符串每1秒循环get提交到http://aa.fatiegongju.com/api/result 即可 一直取到答案为止 取到答案判断 一下答案的第一个字符串 如果为“#” 即为报错了 如果不是#开头 即为返回的答案