Не определяется метод POST

  • Автор темы Автор темы serg32
  • Дата начала Дата начала

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Реакции
15
Баллы
18
Здравствуйте. Возникла необходимость работы постера и api сервиса, на который необходимо отправить post запрос. При отправке запроса приходит ошибка "405 Method Not Allowed" , хотя в заголовках метод пост разрешен.

Access-Control-Allow-Methods: GET, POST, PUT, DELETE, COPY, PATCH, OPTIONS, HEAD
Как поступать в таком случае. С методом GET проблем нет. Может как то дополнительно передать метод запроса?
 
Возможно формат POST запроса не такой как нужен.
 
Возможно формат POST запроса не такой как нужен.
А как можно узнать какой нужен? Дело в том что некоторые ПОСТ запросы работают, а некоторые (аналогичные) нет, причем именно с такой ошибкой метода, как поступать в такой ситуации?
 
Что в api сервиса по данному формату POST запроса сказано?
 
Что в api сервиса по данному формату POST запроса сказано?
Код:
Развернуть Свернуть Копировать
curl 'https://api.vscale.io/v1/scalets/1550/rebuild' -X PATCH  --data '{"password":"3edpd412ds"}' -H 'X-Token: 5c21a467f3b37c331e7482599f1e0971c9bedc30258d6977bbd1db2401bb27e8' -H 'Content-Type: application/json;charset=UTF-8'

Как я понял все дело в методе -X PATCH , его не сделать на постере.
 
Да, экшены не поддерживают это. Пойщите по форуму. Где то был сниппет. Я использовал его для DELETE
 
Вот пример заточен под переменные.
Код:
Развернуть Свернуть Копировать
var request = WebRequest.Create("https://api.cloudflare.com/client/v4/zones/" + project.Variables["zone_id"].Value + "/purge_cache");
request.Method = "DELETE";
request.ContentType = "application/json";
request.Headers.Add("X-Auth-Email", project.Variables["email"].Value);
request.Headers.Add("X-Auth-Key", project.Variables["api_key"].Value);

var writer = new StreamWriter(request.GetRequestStream());
writer.Write("{\"purge_everything\":true}");
writer.Flush();
writer.Close();

var response = (HttpWebResponse)request.GetResponse();
response.Close();
 
Вот пример заточен под переменные.
Код:
Развернуть Свернуть Копировать
var request = WebRequest.Create("https://api.cloudflare.com/client/v4/zones/" + project.Variables["zone_id"].Value + "/purge_cache");
request.Method = "DELETE";
request.ContentType = "application/json";
request.Headers.Add("X-Auth-Email", project.Variables["email"].Value);
request.Headers.Add("X-Auth-Key", project.Variables["api_key"].Value);

var writer = new StreamWriter(request.GetRequestStream());
writer.Write("{\"purge_everything\":true}");
writer.Flush();
writer.Close();

var response = (HttpWebResponse)request.GetResponse();
response.Close();

Спасибо. Попробовал не получилось, есть пара вопросов.
1) Появляется ошибка по подключению пространства имен "HttpWebResponse", следовательно как их подключить
2)
Код:
Развернуть Свернуть Копировать
var writer = new StreamWriter(request.GetRequestStream());

writer.Write("{\"purge_everything\":true}");
writer.Flush();
writer.Close();
это все остается без изменений?
 
Надо снипет адаптировать под Ваш API который используете. Тут нужна помощь кто шарит в C#.
 
Всем добрый вечер. Столкнулся с такой проблемой что при работе через API посылаю POST запрос, но к сожалению сервер получатель не понимает отправленные заголовки.

Вот ссылка на мануал по API - https://www.vultr.com/api/
Вот пример запроса:

curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/start --data 'SUBID=576965'

При отправке пишет что не находит переданный API ключ. Ключ передаю методом POST из обычного кубика ЗП
Вкладка "Дополнительно" -> Пользовательские настройки->User Agent и туда указываю API-Key: EXAMPLE , но в ответ получаю "Method requires authentication, no API key present" . Может есть еще какой либо способ передать туда заголовки? Сам API точно работает, пробовал через bash консоль обычным курлом, все отлично срабатывает, но это все надо сделать в ЗП
 
Никто не знает как можно еще отправлять заголовки кроме как через данные в User Agent?
 
User Agent? тут не причем, А как ты ключ отдаешь? , Хотя скорее всего данные надо отправлять в multipart/form-data
 
User Agent? тут не причем, А как ты ключ отдаешь? , Хотя скорее всего данные надо отправлять в multipart/form-data
Ключ передаю как и всегда во всех методах API, указываю нужные данные в User Agent , как пользовательский заголовок и его понимают. Но с этим API так не получается, он как будто не видит что ему его передают. И проблема точно в API, я проверял другими программами.
 
Нихуевая поддержка для проги за 12к)
 
Вот пример заточен под переменные.
Код:
Развернуть Свернуть Копировать
var request = WebRequest.Create("https://api.cloudflare.com/client/v4/zones/" + project.Variables["zone_id"].Value + "/purge_cache");
request.Method = "DELETE";
request.ContentType = "application/json";
request.Headers.Add("X-Auth-Email", project.Variables["email"].Value);
request.Headers.Add("X-Auth-Key", project.Variables["api_key"].Value);

var writer = new StreamWriter(request.GetRequestStream());
writer.Write("{\"purge_everything\":true}");
writer.Flush();
writer.Close();

var response = (HttpWebResponse)request.GetResponse();
response.Close();

Подскажите пожалуйста, мне надо выключить на клоуде ipv6 через апи
Вот с помощю кода выше удаление кеша или правил фаервола работает
А в изменении ipv6 надо отправить в курл запросе вот эту штуку -data '{"value":"off"}'
Как применить в данный выше код это?

Это пример в хелпе клоуда
Код:
Развернуть Свернуть Копировать
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/023e105f4ecef8ad9ca31a8372d0c353/settings/ipv6" \
     -H "X-Auth-Email: user@example.com" \
     -H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \
     -H "Content-Type: application/json" \
     --data '{"value":"off"}'
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)