Im node.jsとrequestifyというライブラリを使用しています。 コードは次のようになります。本文に特殊文字が含まれていると、ノードのリクエストが失敗します
console.log('body');
console.log(body);
return new Promise(function (f, r) {
requestify.request(myurl, {
method: 'POST',
body : body,
headers : {
"Content-Type" : "application/json; charset=utf-8"
}
})
.then(function (response) {
f({messge : "Success"});
}, function (err) {
console.log(err);
err.code == 405 ? r(err.body) : r({ success: false, message: err });
});
});
要求が(この場合はスウェーデン語文字)特殊文字が含まれている場合、それはエラーがスローされます。
スウェーデン語の文字を除いて全く同じリクエストを送信すると、リクエストは成功します。
私は本当にデバッグが難しい要求を処理しているサーバーにアクセスできません。 しかし、リクエストを送信する前に本文を印刷していて、奇妙なものは表示されません。ここ は、2つの異なるボディリクエストです:
// FAILURE
{ eventType: 'createUser',
eventId: '1e2ca3b4-0f6b-4ed9-ae79-2e112c8d693c',
version: '0.1',
date: 2016-10-07T06:42:26.209Z,
attributes:
{ userName: '[email protected]',
email: '[email protected]',
firstName: 'Åke',
lastName: 'Andresson',
phoneNumber: '1',
identifier: '198509120328',
assignment: 'se.me',
role: [ 'se.me.role.user' ] },
metadata: {} }
// SUCCESS
{ eventType: 'createUser',
eventId: '1e2ca3b4-0f6b-4ed9-ae79-2e112c8d693c',
version: '0.1',
date: 2016-10-07T06:44:09.857Z,
attributes:
{ userName: '[email protected]',
email: '[email protected]',
firstName: 'Ake',
lastName: 'Andresson',
phoneNumber: '9',
identifier: '196606095823',
assignment: 'se.me',
role: [ 'se.me.role.user' ] },
metadata: {} }
私も入れて ";のcharset = UTF-8" ヘッダの中のContent (デフォルトでは、すでに文書化されているのでutf-8です)。 しかし同じ結果です。どのように私はこれをデバッグすることができますか?
これは、要求が失敗したものをサーバーが返すです:私は推測
{
code: 400,
headers:
{ connection: 'close',
'content-type': 'text/plain',
'content-length': '244',
date: 'Fri, 07 Oct 2016 06:42:27 GMT' },
body: 'Unexpected end-of-input: expected close marker for OBJECT (from [Source: [email protected]; line: 1, column: 0])\n at [Source: [email protected]; line: 1, column: 767]' }
あなたはどのバージョンの 'requestify'を持っていますか? –
"requestify": "^ 0.1.17" – oderfla
どちらの回答も有効なJSONなので、どちらもうんざりです。 – Keith