أهلاً،
أرغب في معرفة كيفية إرسال هذا الهيكل:
[
{
"sha1": "3722059cc37f7a56db064c1911f063da826cb211",
"size": 36
},
{
"sha1": "a9993e364706816aba3e25717850c26c9cd0d89d",
"size": 1
}
]
في طلب PUT.
أنا أقوم بتطوير عميل مسبك السحابة لـ Node.js ولدي هذا الشك.
http://apidocs.cloudfoundry.org/214/resource_match/list_all_matching_resources.html
لدي هذا الطلب:
var url = this.API_URL + "/v2/resource_match";
var headers = {
'Accept': 'application/json',
'Authorization': token_type + " " + access_token,
'Content-Type': 'application/x-www-form-urlencoded'
};
return new Promise(function (resolve, reject) {
request.put({url:url, headers: headers}, function optionalCallback(err, httpResponse, body) {
if (err) {
console.error('upload failed:', err);
return reject(error);
}
console.log('Upload successful! Server responded with:', body);
return resolve(body);
});
});
لكن سؤالي هو كيفية إضافة JSON إلى الطلب.
ما هي أفضل طريقة؟
شكرا كثيرا مسبقا.
خوان انطونيو
{body:JSON.stringify({object})}
أهلاً،
لقد اختبرت الفكرة ، لكنني أتلقى الخطأ التالي:
Error: Error: Argument error, options.body.
الكود الكامل:
HttpUtils.prototype.DEBUG = function(method,url,headers,qs,body,httpStatusAssert){
var resources = [
{
"sha1": "3722059cc37f7a56db064c1911f063da826cb211",
"size": 36
},
{
"sha1": "a9993e364706816aba3e25717850c26c9cd0d89d",
"size": 1
}];
var options = {
method: 'PUT',
url: url,
headers: headers,
body: {body:JSON.stringify(resources)}
};
return new Promise(function (resolve, reject) {
request(options, function (error, response, body) {
if(error){
return reject(error);
}
console.log(body);
return resolve(body);
});
});
}
في أي خيار ، يجب أن ألحق: { body: JSON.stringify ({object})} في الطلب؟
انا استخدم:
"طلب": "^ 2.45.0"
كلا ، فقط {body:JSON.stringify({object})}
- _string_. تأكد أيضًا من أنك تستخدم أحدث إصدار من الطلب.
شكرا جزيلا ، إنه يعمل بشكل جيد!
يرجى ملاحظة أن هذا قد تغير ووفقًا لقسم README المتعلق بـ options
، يجب أن يكون بدلاً من ذلك request({body: <JSON-serializable-object>, json: true, url:...})
وليس الكائن _stringified_ المذكور أعلاه عندما يكون json صحيحًا . لقد وجدت هذا مربكًا عند خلط الطلبات في الكود الخاص بي.
سأضيف إلى هذا ، لأن لدي مشكلة مماثلة. كنت بحاجة إلى عدم التفاف قيمة "الجسم" في الخيارات مع الأقواس الكائن. لذلك كان هذا هو الكود الخاص بي:
var solution = [ {"x": 0, "y": 0}, {"x": 1, "y": 0},
{"x": 2, "y": 0},
{"x": 2, "y": 1},
{"x": 2, "y": 2},
{"x": 3, "y": 2},
{"x": 3, "y": 3}
]
var options = {
method: 'POST',
url: url,
headers: headers,
body: solution
};
rp(options)...
}
أستخدم طلب http nodejs
يتغيرون
request.write(JSON.stringify(data));
ل
request.write(JSON.stringify({body: data}));
إنه عمل بالنسبة لي
التعليق الأكثر فائدة
{body:JSON.stringify({object})}