Request: μš”μ²­μ—μ„œ JSON νŽ˜μ΄λ‘œλ“œ λ³Έλ¬Έ 보내기

에 λ§Œλ“  2015λ…„ 08μ›” 06일  Β·  7μ½”λ©˜νŠΈ  Β·  좜처: request/request

μ•ˆλ…•,

이 ꡬ쑰λ₯Ό λ³΄λ‚΄λŠ” 방법을 μ•Œκ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

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

PUT μš”μ²­μ—μ„œ.
μ €λŠ” Node.js용 Cloud Foundry ν΄λΌμ΄μ–ΈνŠΈλ₯Ό 개발 쀑이며 이 질문이 μžˆμŠ΅λ‹ˆλ‹€.

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 μ„Ήμ…˜μ— 따라 json이 true일 λ•Œ μœ„μ—μ„œ μ–ΈκΈ‰ν•œ _stringified_ 객체가 μ•„λ‹ˆλΌ request({body: <JSON-serializable-object>, json: true, url:...}) μ—¬μ•Ό ν•©λ‹ˆλ‹€. λ‚΄ μ½”λ“œμ—μ„œ μš”μ²­μ„ ν˜Όν•©ν•  λ•Œ 이것이 ν˜Όλž€μŠ€λŸ½λ‹€λŠ” 것을 λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€.

λΉ„μŠ·ν•œ λ¬Έμ œκ°€ μžˆμ—ˆκΈ° λ•Œλ¬Έμ— 여기에 μΆ”κ°€ν•˜κ² μŠ΅λ‹ˆλ‹€. 개체 μ€‘κ΄„ν˜Έκ°€ μžˆλŠ” μ˜΅μ…˜μ—μ„œ "λ³Έλ¬Έ" 값을 λž˜ν•‘ν•˜μ§€ μ•Šμ•„μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€. 이것이 λ‚΄ μœ νš¨ν•œ μ½”λ“œμ˜€μŠ΅λ‹ˆλ‹€.

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)...
}

nodejs http μš”μ²­μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.

λ³€ν™”
request.write(JSON.stringify(data));
μ—κ²Œ
request.write(JSON.stringify({body: data}));

λ‚˜λ₯Ό μœ„ν•œ 일이야

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰