.client_exceptions.ContentTypeError: 0, message = 'Попытка декодировать JSON с неожиданным mimetype: text / html;кодировка = UTF-8' - PullRequest
0 голосов
/ 24 октября 2019

Я получаю вышеупомянутую ошибку при попытке вызвать метод CallbackInput.

Версия Rasa: Rasa 1.0.6

Вот мой код,

credentials.yml

callback:
# URL to which Core will send the bot responses
url: "http://localhost:5000/rasa_callback"

rasa:
url: "http://localhost:5002/api"

callbackURL.py

Я вызываю этот API с помощью API-клиента.

    @app.route('/rasa_in',methods=['GET','POST'])
    def wahtsapp_in():
    wa_in = request.get_json(force=True)
    wa_data_text = None
    rasa_url = "http://localhost:5005/webhooks/callback/webhook"
    for res in wa_in:
        if 'text' in res:
            wa_data_text = res.get('text').get('body')
        wa_data = {
            "sender":"Rasa",
            "message":wa_data_text
        }
        headers = {
    "Content-Type": "application/json"
            }

    data=json.dumps(wa_data,sort_keys=True, indent=3)
    r = requests.post(url=rasa_url, headers=headers, data=data)
    print('r',r) **// Here it print  500 Error**
    return r.content

Вот обратный вызовURL

    @app.route('/rasa_callback',methods=['GET','POST'])
    def rasa_callback():
    headers = {
      "Content-Type": "application/json"
        }
    rasa_data = request.get_json(force=True)
    api_url = 'https://my_url'
    ts = time.time()
    rasa_body = ''
    if 'text' in rasa_data:
        rasa_body = rasa_data.get('text')
    wa_data ={
                "text":{"message":rasa_body}
            }



    r = requests.post(url=api_url,headers=headers, data=json.dumps(wa_data))
    return r.content # I treid below return too, but no luck
    return json.dumps(r.text,sort_keys=True, indent=3)

Как мне решить эту проблему?

РЕДАКТИРОВАТЬ: Мне удалось получить данные, используя request.json. Но все равно я получаю ту же ошибку. Один вопрос, что я должен вернуть в функцию обратного вызова? Потому что, когда я возвращаю строку или любой другой правильный ответ, я получаю вышеупомянутую ошибку. Если я возвращаю неправильные данные, такие как {} или 'запрос-ответ', я получаю сообщение об ошибке типа Неверный тип возврата, но в то же время в родительской функции / клиенте URL / API я получаю ответ success.

Так что я должен вернуть в функцию обратного вызова? Спасибо

...