2017-09-05 9 views

答えて

0

/transferエンドポイントは'array[0]': '3', 'array[1]': '4', 'array[2]': '5'としてobjを受信 - request.post()オプションで、formプロパティが使用されます。

/transferにJSONオブジェクトを送信するには、Content-Typeapplication/jsonである必要があります。コード内bodyjson手段、モジュールリクエストのdocumentによれば

var request = require('request'); 

var obj={ 
    tag: 'false', 
    array: [ '3', '4', '5'] 
}; 

// requestb.in URL is used here for example, but it can be replaced. 
request({ 
    url: 'https://requestb.in/srp1bmsr', 
    method: 'post', 
    body: obj, 
    json: true 
}, function(err, response, body) { 
    if(err){ 
    // deal with error. 
    }else{ 
    // deal with success response. 
    } 
}); 

: - パッチのエンティティボディ、POST及びPUT

モジュールrequestには、以下のように実施することができますリクエスト。バッファ、文字列、またはReadStreamでなければなりません。 jsonがtrueの場合、bodyはJSON直列化可能オブジェクトでなければなりません。

json - bodyをvalueのJSON表現に設定し、Content-type:application/jsonヘッダーを追加します。さらに、応答本体をJSONとして解析します。

+0

文書でこの部分について言及していないのはなぜですか? –

+0

@AlbertChen 'application/x-www-form-urlencoded'を意味しますか?実際には、 'request'モジュール文書は簡単な例を挙げて言及しています。ドキュメントページの「application/x-www-form-urlencoded(URL-Encoded Forms)」を検索してください。 – shaochuancs

0

あなたは、コンテンツタイプとしてJSONヘッダーを設定する必要が送信します。

送信

let message = { 
    tag: 'false', 
    array: [ '3', '4', '5'] 
}; 

return this.http 
     .post(url, message, new Headers({'Content-Type': 'application/json'}))  

あなたはREQ本体を解析するためにJSONボディパーサーを使用する必要が受け取ります。 https://www.npmjs.com/package/body-parser

は、ここで私は私のノードサーバとしてExpressを使用してい

router.post('/signin', function (req, res) { 
    console.log(req.bod);   
}); 

を受信します。あなたのapp.js(server.jsまたは何でもメインスクリプト)でJSONペイロードを解析するボディパーサーを設定します。

const express = require('express'); 
const bodyParser = require('body-parser'); 

const app = express(); 
app.use(bodyParser.json()); 
+0

https:// github。com/request/request#custom-http-headers、似たような機能を持っているようだが、使用方法がわからないこのキットを使用していることを忘れていた –

+0

これはクライアント側向けのものですか?あなたは何をサーバー側に使用していますか? –

+0

node.jsサーバーが他のnode.jsサーバーに渡されます。 –

2

プロパティを使用してヘッダーを設定できます。

request.post({ 
    url:/localhost/transfer, 
    body: obj, 
    json: true 
},function(err,httpResponse,body){ 
    if(err){ 
     res.json({error:false}); 
    }else{ 
     res.json({error:true}); 
    } 
}); 

また、それが自動的にヘッダを追加してもJSONとしてレスポンスボディを解析する、json: trueを設定することができます。 HTTPリクエストのContent-Typeapplication/x-www-form-urlencodedあるため

+0

フォーマットは変更されていません。 –

+0

@AlbertChen 'form'プロパティが' request.post() 'で使われていて、' body'がないので動作しません。また、 '' content-type ''を定義する必要はありませんので注意してください: "application/json"を 'json:true'とすると自動的に追加されます。 – shaochuancs