* Python * 406 не допускается - PullRequest
2 голосов
/ 08 июля 2019

Я получаю 406, что не приемлемо, когда я пытаюсь получить доступ к http://localhost:5000/soap/someservice

Ошибка API: Ресурс, указанный в запросе, способен генерировать только объекты ответа, которые не имеют характеристик содержимогоприемлемо в соответствии с заголовками подтверждения, отправленными в запросе.Поддерживаются следующие объекты: text / html.

Вот фрагмент кода со стороны сервера

from flask import Flask, jsonify
from flask_accept import accept
app = Flask(__name__)

@app.route('/soap/someservice')
@accept('text/html')
def hello_world():
    return 'Hello World!'

Что я пробовал на стороне клиента:

from suds.client import Client
url = 'http://localhost:5000/soap/someservice?wsdl'
client = Client(url)

406 not acceptable

import requests
r=requests.get("http://localhost:5000/soap/someservice", headers={"content-type":"text"})
print(r)

406 not acceptable

Все решения дают одинаковую ошибку, какие-либо подсказки?

1 Ответ

1 голос
/ 08 июля 2019

Вы указали

@accept('text/html')

В конечной точке Flask, но вы не предоставили Accept Header , указывающий text/html в вашем запросе. Сравните, запустив приложение Flask, но используя:

In [3]: import requests
   ...: r=requests.get("http://localhost:5000/soap/someservice", 
                       headers={"Accept":"text/html"})
   ...: print(r)
   ...:
<Response [200]>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...