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://dt1.hyocr.com:8080/';
		
		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 +'uploadpic.php', {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 +'Query.php?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://dt1.hyocr.com:8080/Query.php 即可 一直取到答案为止 取到答案判断 一下答案的第一个字符串 如果为“#” 即为报错了 如果不是#开头 即为返回的答案