2017-08-17 9 views
0

私は、JSONオブジェクトでhttpポストコールを渡す単純なボットを構築しています。サーバーはエラー - {"detail": "JSON解析エラー - 期待値:1行目1(char 0)"}に応答します:Gupshupポスト空のボディ

私はサーバー側が問題ではないと思います。私はhttpieを使ってリクエストを試みました。

Gupshup

のコード
var contextParam = { 
     "botname": event.botname, 
     "channel": event.channel, 
     "sender": event.sender, 
     "message":event.message 
    }; 
    var url = "https://abcserver.com/sm/postData"; 
    var param = JSON.stringify(contextParam); 
    var header = {"Content-Type": "application/json"}; 
    context.simplehttp.makePost(url, param, header) 

サーバ側でhttpie

HTTP POST https://abcserver.com/sm/postData botname = MrBotチャンネル= Skypeの送信者= MrSenderメッセージから対応するコール=こんにちは

:ロガー。デバッグ( "要求本文:" + str(request.body))puts - "要求本文:b '"をログファイルに書き込みます。

PS:私はジャンゴを使用しています、Djangoの残りのフレームワーク

答えて

0

[回答アップデート 21/8/2017]

GupshupのIDEボットビルダーが使用してHTTP POST呼び出しを行うための構文正しい。このポストmaking-http-post-request-on-gupshup-ide-worksを作業コードが存在するところで調べてください。

完全な作業コード:

var url_ = 'http://p-curl-i.herokuapp.com/getresponse/'; 
var body = { 
    "botname": event.botname, 
    "channel": event.channel, 
    "sender": event.sender, 
    "message": event.message 
}; 
    var headers = { 
'cache-control': 'no-cache', 
    'content-type': 'application/json', 
    'Content-Length' : JSON.stringify(body).length 
}; 
    context.simplehttp.makePost(url_, JSON.stringify(body), headers); 

ポストマンやhttpieがするように、サーバーは、このように必須とGupshupのバックエンドは、デフォルトでは、コンテンツの長さを送信していないしているので、あなたは、「コンテンツ長」を送信する必要があります。

+0

serversideはhttpieとpostmanで正常に動作しますが、要求がgupshupから来た場合に問題があります。何かご意見は? – RMDev

+0

私はAPIやPostman curlコマンドの詳細を共有することができますか?ここにいなければ、私たちに[email protected]で書くことができます。 – Shreyans

関連する問題