У нас есть клиентский api-вызов, который требует, чтобы сообщение отправлялось как данные формы. Когда мы запускаем вызов через расширение Postman от Chrome, он успешно запускается, когда мы указываем данные формы, и возвращает ошибку, если мы укажем x-www-form-urlencoded. Это ожидается.request.post продолжает переопределять контент-тип как тип содержимого: application/x-www-form-urlencoded при задании данных формы
Однако при попытке запустить в node.js с помощью пакета запросов npm для обработки сообщения мы продолжаем получать сообщение об ошибке из api, которое, к сожалению, не дает нам сведений о том, что не так. Но мы видим, что объект заголовка запроса выглядит следующим образом, когда он выходит:
_header: «POST/API/клиент/купон/добавить HTTP/1.1 \ г \ nAuthorization: Basic [Auth строка отредактированный] \ r \ nhost: beta1.client.com \ r \ ncontent-type: application/x-www-form-urlencoded \ r \ ncontent-length: 172 \ r \ nConnection: keep-alive \ r \ n \ r \ п»,
Наш Node.js код выглядит следующим образом:
//Create the coupon
var coupon = { code: "abcde1234"),
discount: "33",
type: "percent"
}
var request = require('request');
request.post(
{
url: "https://beta1.client.com/api/coupon/add",
headers: {
"authorization": auth,
"content-disposition": "form-data; name='data'"
},
form: coupon
},
function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
}
}
);
Что мне интересно, почему заголовок типа содержимого продолжает читать «application/x-www-form-urlencoded», когда мы предоставили контент-расположение «форм-данных». Мне кажется, что если бы я мог удалить атрибут заголовка содержимого, он должен работать, но как это сделать?
Любые идеи были бы оценены.
gah - конечно! Спасибо за ответ. – Gatmando
Добро пожаловать :) – dShringi