2016-10-07 7 views
0

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]' } 
+0

あなたはどのバージョンの 'requestify'を持っていますか? –

+0

"requestify": "^ 0.1.17" – oderfla

+1

どちらの回答も有効なJSONなので、どちらもうんざりです。 – Keith

答えて

1

、あなたが最新バージョンにrequestifyモジュールをアップロードする必要があります。私はversion 0.2.3を使用してもエラーは発生しません。

norwegian(または)swedish文字を読み込もうとしているときにエラーが発生したと仮定すると、私はそれにnorwegian文字が含まれているウェブサイトを読んで試してみましたが、以下のコードで、私はへの出力にそれをことができますよコンソールに何のエラーもありません。同じswedishページと同じです。私は0.2.3バージョンを使用しています(これは最新のバージョンです)。エンコードをUTF-8に設定していません。

var requestify = require('requestify'); 

requestify.get('http://www.norwegian4people.com/lesson.php?id=41').then(function(response) { 
    // Get the response body 
    console.log(response.getBody()); 
}); 

関連する問題