у нас есть java-интерфейс для отправки verify_code на телефон, и почтальон отлично справился с этим。
мой код nodejs, как показано ниже
let test = {
"phoneNumber": "15021071273",
"smsParams": [
"注册",
"123456",
"注册"
],
"tmplId": 109341
}
var content = JSON.stringify(test);
// An object of options to indicate where to post to
var post_options = {
host: '172.16.211.33', //'common-message'
port: '10011',
path: '/sms/sendTecentyunSms',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': content.length
}
};
// Set up the request
var post_req = http.request(post_options, function (res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('Response: ' + chunk);
});
});
// post the data
post_req.write(content);
post_req.end();
и интерфейс java отвечает:
Ответ: {"timestamp": 1572935973619, "status": 400, "error": "Bad Request", "exception": "org.springframework.http.converter.HttpMessageNotReadableException", "message": "Ошибка синтаксического анализа JSON: неожиданная. конец ввода внутри / между записями объекта; вложенное исключение - com.fasterxml.jackson.core.io.JsonEOFException: неожиданный конец ввода внутри / между записями объекта \ n в [Источник: java.io.PushbackInputStream@3e497877 ; строка: 1, столбец: 157] "," путь ":" / sms / sendTecentyunSms "}
похоже, это просто ошибка парсинга json.
Я также попытался сначала JSON.stringy tese.smsParams, не работал
req.write принимает только строку или буфер, поэтому он не может просто поместить объект json в качестве параметра。