Flask форма POST-запроса не может обрабатывать данные - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь выполнить запрос формы для созданной мной системы управления пользователями. У меня включены сеансы на бэкэнд-сервере flask.

Запрос является обновлением профиля пользователя, у меня есть два условия, которые могут быть выполнены

1 - Когда пользователь вошел в систему

2- Пользователь вышел из системы.

Когда пользователь вошел в систему, я могу успешно сделать запрос на обновление.

Но когда пользователь вышел из системы, API не соответствует Поскольку я отправляю 10 текстовых параметров с файловым объектом

Case1- Когда я отправляю на сервер текст <6 параметров, он показывает, что пользователь вышел из системы, пожалуйста, войдите снова. </p>

Случай 2 - Когда Я пытаюсь отправить все 10 параметров с файловым объектом, затем получаю сообщение на почтальоне, говорящее «Не удалось получить сообщение от сервера»

Когда данные сеансов извлекаются (пользователь вышел из системы) Является ли запрос нет в состоянии обрабатывать данные? как и с меньшим количеством параметров, я, по крайней мере, могу получить сообщение об ошибке, которое я настроил с помощью своего бэкэнда flask.

Ниже приведен код, который я использую для отправки запроса на сервер. И в случае, когда пользователь вошел или вышел из системы

import requests

url = "url/profileupdates"

payload = {'username': 'testingprofile',
'password': 'rhythmtesting_ch',
'email': 'vikas@ch.com',
'user_mobile': 'change',
'user_health': 'testing',
'age': 'testing',
'emergency_contact': 'emergency'}
files = [
  ('file', open('/Users/vikasnair/Downloads/E8E4FCC5-9BB7-4530-864B-B662E9884636.jpeg','rb'))
]
headers = {
  'Cookie': 'session=.eJxdzsEKwjAMBuB3yVm8znryTUps4xZoUmk6pIjvbrddyv5b8v2BfMHIjLN6EuQEd4irPGJr15AFLoNSmUlD8yFrxVB7c9ozlCQ_OVEXt2eQN5p9condMArrQKtR8ThvZzd33i-EqS6dXqx0QkWh419p2-zg9wcu90hp.Xqe8zw.z8706Z3t8OUhANpAzcanQyQfBnI'
}

response = requests.request("POST", url, headers=headers, data = payload, files = files)

print(response.text.encode('utf8'))

Приведенный ниже код работает, когда я пытаюсь отправить меньше параметров

import requests

url = "url/profileupdates"

payload = {'username': 'testingprofile',
'password': 'rhythmtesting_ch',
'email': 'vikas@ch.com',
'user_mobile': 'change'}
files = [

]
headers = {
  'Cookie': 'session=.eJxdzsEKwjAMBuB3yVm8znryTUps4xZoUmk6pIjvbrddyv5b8v2BfMHIjLN6EuQEd4irPGJr15AFLoNSmUlD8yFrxVB7c9ozlCQ_OVEXt2eQN5p9condMArrQKtR8ThvZzd33i-EqS6dXqx0QkWh419p2-zg9wcu90hp.Xqe8zw.z8706Z3t8OUhANpAzcanQyQfBnI'
}

response = requests.request("POST", url, headers=headers, data = payload, files = files)

print(response.text.encode('utf8'))

1 Ответ

0 голосов
/ 28 апреля 2020

Попробуйте использовать

headers = {'Content-Type': 'multipart / form-data'}

...