總有網(wǎng)友問這個(gè)問題:
這個(gè)報(bào)錯(cuò)通常出現(xiàn)在聯(lián)眾打碼插件和山海插件同時(shí)使用的時(shí)候,考慮到山海插件是我們經(jīng)常的插件盡量不去改動(dòng),那么從聯(lián)眾插件方面入手。
第一個(gè)想法是修改插件,看到報(bào)錯(cuò)提示變量“GetTempFile”是空值,打開兩個(gè)插件發(fā)現(xiàn)都含有這個(gè)變量。原本想修改一下,然后發(fā)現(xiàn)有點(diǎn)麻煩(其實(shí)是不會(huì)改,對(duì)lua不精通),所以這個(gè)想法就放棄了。
第二個(gè)想法重新寫源碼,看了一下聯(lián)眾提供的代碼以及插件內(nèi)容,發(fā)現(xiàn)原理就是提交給聯(lián)眾服務(wù)器一個(gè)圖片base64內(nèi)容,識(shí)別后獲取返回值。想想這個(gè)和別的post差不多嗎,尤其是和百度云識(shí)別啊,想法看來可行。
有了想法開始自己寫代碼了,保留聯(lián)眾提供原有代碼的框架,用其他命令替換掉使用聯(lián)眾插件部分的代碼,最終代碼如下:
Import "shanhai.lua"
Dim user = "******"? ? ? ? ? ? ? ? ? '用戶名
Dim pwd = "******"? ? ? ? ? ? ? ? ? '密碼
Dim softID = "11105"? ? ? ? ? ? ? ? ? '軟件ID,作者賬號(hào)增加軟件后獲取
Dim Secret = "******"? ? ? ? ? ? ? ? ? '安全碼,作者賬號(hào)增加軟件后獲取
Dim filepath = GetSdcardDir() & "/pictures/yzm.jpg"? ? '圖片路徑
Dim tpe = 1026? ? ? ? ? ? ? ? ? '圖像類型
Dim ot = 60? ? ? ? ? ? ? ? ? ? '超時(shí)時(shí)間(秒)
Dim minlen = 0? ? ? ? ? ? ? ? ? '圖像最小長度
Dim maxlen = 0? ? ? ? ? ? ? ? ? '圖像最大長度
Dim workerTipsId = 0?
Dim uri="http://v2-no-secure-api.jsdama.com/upload"
Dim base64=ShanHai.ReadFileBase(filepath)
Dim RetTbl, ID, Result
Dim formtable={_
"softwareId":softID,_
"softwareSecret":secret,_
"username":user,_
"password":pwd,_
"captchaData":base64,_
"captchaType":tpe,_
"captchaMinLength":minlen,_
"captchaMaxLength":maxlen,_
"workerTipsId":workerTipsId}
Dim json=encode.TableToJson(formtable)
dim Retjson=ShanHai.PostHttp(uri,json,5)
RetTbl=encode.JsonToTable(Retjson)
If RetTbl Then
? If RetTbl["code"] = 0 Then
? ? ID = RetTbl["data"]["captchaId"]
? ? Result = RetTbl["data"]["recognition"]
? ? TracePrint "圖像識(shí)別結(jié)果為: ", Result
? ? TracePrint "圖像ID為: ", ID
? Else
? ? TracePrint "圖像結(jié)果獲取失敗, 錯(cuò)誤原因: ", RetTbl["message"]
? End If
Else
? TracePrint "HTTP請(qǐng)求發(fā)送失敗"
End If
目前測試可以正常獲取返回結(jié)果:
由于去掉聯(lián)眾插件,所以不會(huì)再出現(xiàn)插件沖突報(bào)錯(cuò)了。同時(shí)保留了原有代碼的框架,在使用的時(shí)候基本和原來聯(lián)眾代碼沒有任何區(qū)別。當(dāng)然還有兩個(gè)功能“結(jié)果報(bào)錯(cuò)”和“檢查點(diǎn)數(shù)”沒有寫,如果你用得著的話,可以參照我的格式自己去寫一下。