У меня проблема с отправкой запроса POST на мой flask сервер с помощью библиотеки urllib. Все на моем сервере тестировалось с использованием Postman и Advanced REST Client, поэтому я уверен, что на моем сервере нет очевидных ошибок, но я получаю ошибку 500 при использовании этого кода. Я перепробовал много постов с переполнением стека и ответов, перечисленных там, но пока не нашел решения, которое работает.
Как правило, сервер имеет маршруты для / name / add, который принимает запрос POST для получения имени для добавления в глобальный список, в то время как / names возвращает словарь со значением в виде списка строковых имен. Просто очень озадачен, потому что все прекрасно работает на почтальоне и AR C: (
pkt = parse.urlencode({'name':'Hayden'}).encode('ascii')
req = request.Request('http://127.0.0.1:5000/name/add', pkt)
with request.urlopen(req) as response:
print(response.read())
Код сервера таков:
APP = Flask(__name__)
NAMES = []
@APP.route("/name/add", methods=['POST'])
def add_name():
'''
Adds a new name to the NAMES list
'''
data = request.get_json()
NAMES.append(data['name'])
return {}
@APP.route("/names", methods=['GET'])
def ret_names():
'''
Displays the NAMES list
'''
return dumps({
'name':str(NAMES)
})
@APP.route("/name/remove", methods=['DELETE'])
def rm_name():
'''
Removes a name from the NAMES list
'''
data = request.get_json()
NAMES.remove(data['name'])
return {}
if __name__ == "__main__":
APP.run(port=5000)
Сообщение об ошибке выглядит следующим образом:
Traceback (most recent call last):
File "/import/reed/3/z5265106/.local/lib/python3.7/site-packages/flask/app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "/import/reed/3/z5265106/.local/lib/python3.7/site-packages/flask/app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/import/reed/3/z5265106/.local/lib/python3.7/site-packages/flask/app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/import/reed/3/z5265106/.local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/import/reed/3/z5265106/.local/lib/python3.7/site-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/import/reed/3/z5265106/.local/lib/python3.7/site-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "simple.py", line 18, in add_name
NAMES.append(data['name'])
TypeError: 'NoneType' object is not subscriptable