2017-08-17 2 views
0

Je suis en train de créer un bot simple qui fait passer un post http dans des objets JSON. Le serveur répond en retour avec l'erreur - {"detail": "Erreur d'analyse JSON - Valeur attendue: ligne 1 colonne 1 (char 0)"}:Gupshup Post - Corps vide

Je ne pense pas que le côté serveur est le problème; J'ai essayé la demande en utilisant httpie.

Le code 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) 

L'appel correspondant de httpie

http POST https://abcserver.com/sm/postData botname = MrBot canal = Skype expéditeur = MrSender message = Salut

A côté serveur: enregistreur. debug ("Corps de la demande:" + str (request.body)) met - "Request body: b '" dans le fichier journal.

PS: J'utilise Django, Django Rest Framework

Répondre

0

[réponse Mise à jour 21/8/2017]

La syntaxe pour faire l'appel HTTP POST en utilisant l'IDE Bot Builder de Gupshup est correct. Découvrez ce poste making-http-post-request-on-gupshup-ide-works sur SO où un code de travail est présent.

Code de travail complet:

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); 

Vous devez envoyer « Content-Length » parce que votre serveur a cela comme obligatoire et le back-end de Gupshup n'envoie pas la longueur du contenu par défaut comme Postman ou httpie fait.

+0

Le côté serveur fonctionne avec httpie et posman comme prévu, mais rencontre un problème lorsque la requête provient de gupshup. Des pensées? – RMDev

+0

est-il possible pour vous de partager les détails de l'API ou la commande Postman curl pour moi de tester? Si ce n'est pas ici, vous pouvez nous écrire sur [email protected] – Shreyans