調試了兩天的問題總算發現問題所在
情況:通過調用企業微信接口給用戶發送消息發送英文正常,但是發送中文就會返回
"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;
}