企業微信調試發送消息接口只能發送5個中文字符問題


調試了兩天的問題總算發現問題所在

情況:通過調用企業微信接口給用戶發送消息發送英文正常,但是發送中文就會返回

          "errcode":44004,"errmsg":"empty content  錯誤的提示,提示說參數當中沒有文本,但是json串中肯定是有內容的

一開始以為是編碼問題,調試了很久的編碼都無法解決,通過編碼后的中文到企業微信客戶端上就是編碼后的內容

然后想到了發送一個中文字試試,居然成功了,然后一個個中文字增加,直到5個中文的時候就又發送不成功了,又返回

      "errcode":44004錯誤,但是發送英文不管多少都可以成功的,又一次陷入了沉思

 

第二天調試過程中,猛然想到了發送的headers頭部有這么一個參數

'Content-Length': postData.length   就想會不會是和這個發送的消息內容長度有關系

通過調試單獨打印英文和中文的消息內容長度發現,中文的確實是計算長度有錯誤

百度找到以下計算方法后,發送的長度正確后就所有中文字符都能發送了

https://blog.csdn.net/xing_____/article/details/46828603

function checkLength(str){
var len = 0;
for (var i=0; i<str.length; i++) {
var c = str.charCodeAt(i);
if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
len++;
} else {
len+=3;
}
}
return len;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM