Запрос приходит назад как 400
, который является HTTP Bad Request
.
Первое, что я сделал бы, чтобы вывести тело сообщения ответа API, отправленное вам обратно, чтобы увидеть какие-либо детали того, что не так. Ответы с плохим запросом, как правило, говорят вам, что не так с запросом.
Поскольку frisby является асинхронным, вы обеспечиваете выполнение заказа с помощью after()
(перед тем как бросить).
.post("https://blah.blah.blah.com", "some json...", "some more json...")
.expectStatus(200)
.after(function(err, res, body){ console.log(body); })
.toss();
Теперь, Фрисби-х post()
принимает 3 аргумента:
url
: URL
data
: тело вашего запроса после
params
: параметры для Фрисби пост функции пост, как говорил он должен представить json.
Итак, похоже, вы публикуете (возможно, создаете) объект имени пользователя/пароля.
Я предполагаю, что строка "url"
действительно является действительным URL-адресом, поэтому мы можем пропустить эту очевидную проблему.
Принимая дикий снимок, не видя сообщения об ошибке, я собираюсь угадать вашу проблему: вы не предоставляете аутентификационные данные API. Я не знаю, многие API полностью открыты. Как правило, вы ожидаете, что-то вроде учетных данных Basic Auth, и если вы не предоставите их, вы обычно получаете:
400 bad request
, если они хорошо с сообщением не говоря «нет полномочий»
404 not found
если они играют скромен и не хочу, не уполномоченные люди, чтобы знать, что есть действующий ресурс там
- или, может быть, даже
403 Forbidden
Если это не получится быть учетные данные, добавьте их после создания и звоните, но перед вами toss()
. Если вы положите его до post()
, он потерпит неудачу. Кроме того, это имя пользователя API &, а не любой пользователь, которого вы пытаетесь создать в системе. Иногда они упоминаются в API: client_id
и client_secret
или API_KEY
и API_SECRET
, но это всего лишь идентификатор и общий секрет.
Так что последнее, что будет выглядеть
.post("https://blah.blah.blah.com", "some json...", "some more json...")
.auth("api_username", "api_password")
.expectStatus(200)
.toss();
Фрисби преобразует исходный текст имя пользователя/пароль к действительному базы 64 кодирования строки и вставить его в заголовке Authorization:
(вероятно, почему это должно произойти после вызова post()
)
Кроме того, я хочу, чтобы явное добавление заголовков с использованием addHeader(header, content)
забрасывание большого неприятного blob json в post()
, но это только мое предпочтение.
Удачи!
Имя пользователя, пароль и URL-адрес являются пустыми. –
Любое предложение Пожалуйста, –
HTTP 400 является «плохим запросом», поэтому, возможно, что-то не так с вашими заголовками запросов. «Accept-Encoding»: «Кодирование: gzip, deflate» выглядит странно; Я бы удалил эту вторую «Кодировку:», если бы я был вами. –