首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gupshup后空身体

Gupshup后空身体
EN

Stack Overflow用户
提问于 2017-08-17 15:37:11
回答 1查看 573关注 0票数 0

我正在构建一个简单的bot,它使http调用传入JSON对象。服务器返回错误- {"detail":"JSON解析错误-预期值:第1行第1列(char 0)"}:

我不认为服务器端是问题所在;我已经使用httpie尝试了请求。

Gupshup中的代码

代码语言:javascript
复制
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的相应调用。

代码语言:javascript
复制
http POST https://abcserver.com/sm/postData  botname=MrBot channel=Skype sender=MrSender message=Hi

在服务器端:

代码语言:javascript
复制
logger.debug("Request body : " + str(request.body))

在日志文件中放置- "Request body : b'"

PS:我正在使用Django,Django Rest框架

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-18 09:23:12

答案更新 21/8/2017

使用Gupshup的IDE Builder进行HTTP调用的语法是正确的。查看这篇文章中的making-http-post-request-on-gupshup-ide-works,以便在有工作代码的地方出现。

完整的工作代码:

代码语言:javascript
复制
 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);

您需要发送“内容长度”,因为您的服务器将此作为强制性的,而Gupshup的后端在默认情况下并不像Postman或httpie那样发送内容长度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45739463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档