Envoi d'une requête POST à mon API RESTful(Python-Flacon), mais la réception d'une requête GET

Je suis en train d'envoyer un déclencheur pour un Zapier webhook sous la forme d'une requête POST contenant JSON. Il fonctionne très bien si je viens d'envoyer la requête POST grâce à un script python.

Ce que je veux faire est de créer une API RESTful qui rend le déclencheur Zapier webhook lorsque la créer-ligne-en-gs extrémité est appelée.

Comme vous pouvez le voir, je suis de l'envoi d'une requête POST appel API pour la Hasura cluster. Mais au lieu de trouver la réponse comme "200 OK SUCCÈS", je suis un '200 OK échec", ce qui signifie que la demande est traitée comme une requête GET au lieu de POST.

test.py

#Python 3 Script to send a POST request containing JSON

import json
import requests

api_url = 'http://app.catercorner16.hasura-app.io/create-row-in-gs'
create_row_data = {'id': '1235','name':'Joel','created-on':'27/01/2018','modified-on':'27/01/2018','desc':'This is Joel!!'}
r = requests.post(url=api_url, data=create_row_data)
print(r.status_code, r.reason, r.text)

server.py (en cours d'Exécution sur Hasura cluster)

from src import app
from flask import jsonify,request,make_response,url_for,redirect
from json import dumps
from requests import post

url = 'https://hooks.zapier.com/hooks/catch/xxxxx/yyyyy/'

@app.route('/create-row-in-gs', methods=['GET','POST'])
def create_row_in_gs():
    if request.method == 'GET':
        return make_response('failure')
    if request.method == 'POST':
        t_id = request.json['id']
        t_name = request.json['name']
        created_on = request.json['created_on']
        modified_on = request.json['modified_on']
        desc = request.json['desc']

        create_row_data = {'id': str(t_id),'name':str(t_name),'created-on':str(created_on),'modified-on':str(modified_on),'desc':str(desc)}

        response = requests.post(
            url, data=json.dumps(create_row_data),
            headers={'Content-Type': 'application/json'}
        )
        return response

Ont été aux prises avec ce pendant des semaines. Ce que je fais mal? Serais reconnaissant de toute aide.

  • Pas liées à votre problème, mais si votre demande est un échec, vous ne devriez pas rendement de 200.
  • D'accord! Fera la remarque.
  • Ma conjecture: vous obtenez une redirection.Essayez le requests.post avec allow_redirects=False
  • Ouais, je l'ai fait maintenant, et maintenant il lit '301 moved permanently'. Prévu?
  • Comme je l'ai dit, je ne faisais que deviner à partir de symptômes, qu'il pourrait y un post/redirect/get motif caché quelque part.
  • Avez-vous essayez d'utiliser l'URL https au lieu de http un? J'ai visité l'URL que vous avez lié à votre test.py fichier, et c'est une URL https maintenant. Peut-être essayer ça et exécuter test.py?
  • Wow! Juste eu à utiliser https au lieu de http. Fonctionne maintenant.