Request: рдЕрдиреБрд░реЛрдз рдореЗрдВ JSON рдкреЗрд▓реЛрдб рдмреЙрдбреА рднреЗрдЬреЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рдЕрдЧре░ 2015  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: request/request

рд╣реИрд▓реЛ,

рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдХреИрд╕реЗ рднреЗрдЬрд╛ рдЬрд╛рдП:

[
  {
    "sha1": "3722059cc37f7a56db064c1911f063da826cb211",
    "size": 36
  },
  {
    "sha1": "a9993e364706816aba3e25717850c26c9cd0d89d",
    "size": 1
  }
]

рдПрдХ рдкреБрдЯ рдЕрдиреБрд░реЛрдз рдореЗрдВред
рдореИрдВ 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})}

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

{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_. рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЕрдиреБрд░реЛрдз рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдЕрдЪреНрдЫрд╛ рдЪрд▓рддрд╛ рд╣реИ!

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ, рдпрд╣ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ options рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд README рдЕрдиреБрднрд╛рдЧ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп request({body: <JSON-serializable-object>, json: true, url:...}) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рди рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд _stringified_ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрдм json true рд╣реЛ ред рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдорд┐рд▓рд╛рддреЗ рд╕рдордп рдореБрдЭреЗ рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд▓рдЧрд╛ред

рдореИрдВ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдереАред рдореБрдЭреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ "рдмреЙрдбреА" рдХреЗ рдорд╛рди рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред рддреЛ рдпрд╣ рдореЗрд░рд╛ рд╡реИрдз рдХреЛрдб рдерд╛:

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 рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ

рдмрджрд▓рдирд╛
request.write(JSON.stringify(data));
рдкреНрд░рддрд┐
request.write(JSON.stringify({body: data}));

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

andornaut picture andornaut  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jsspace picture jsspace  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Guymestef picture Guymestef  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

crostine picture crostine  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lupo9557 picture lupo9557  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ