400 Bad Request при создании пользовательского пост-запроса - PullRequest
0 голосов
/ 27 октября 2018

Я считаю, что проблема заключается в значениях URL.Когда я отправляю это на сервер, я получаю 400 неверных запросов: мне нужно указать значение электронной почты.Это заставляет меня поверить, что либо значение email в editForm неправильно анализируется, либо значение first_value, а затем «портит» все остальное.Я видел это: Сделайте запрос POST в кодировке URL с помощью `http.NewRequest (...)` и верьте, что я все делаю правильно, но это меня отталкивает.

editForm := url.Values{}
editForm.Add("first_name", "supercool")
editForm.Add("email", "wow@example.com")
editForm.Add("username", "foo")

req, err := http.NewRequest(http.MethodPost, urlEndpoint, strings.NewReader(editForm.Encode()))
if err != nil {
    log.Fatalln(err)
}
client := http.Client{}
resp, err := client.Do(req)

Я дважды проверил, как должны вызываться данные формы, и не вижу ошибки.Для справки, этот код Python будет работать.

cn = {
    "first_name": "supercool",
    "email": "wow@example.com",
    "username": "foo"
}
r = requests.post(urlEndpoint, data = cn)

1 Ответ

0 голосов
/ 27 октября 2018

Вы не отправляете заголовок согласования содержимого.

Тип содержимого

Поле заголовка Content-Type определяет характер данных в тело объекта путем предоставления идентификаторов типов и подтипов мультимедиа и предоставления вспомогательной информации, которая может потребоваться медиа типы. После имени типа носителя и подтипа оставшаяся часть поля заголовка представляет собой просто набор параметров, указанных в нотации атрибут = значение. Порядок параметров не имеет значения.

Здесь в этом случае контент кодируется в application/x-www-form-urlencoded, поэтому он должен быть передан на сервер с использованием Content-Type header

Пожалуйста, добавьте следующее перед отправкой запроса

 r.Header.Add("Content-Type", "application/x-www-form-urlencoded")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...