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

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 проблем нет. Может как то дополнительно передать метод запроса?
 

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
Возможно формат POST запроса не такой как нужен.
 

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18
Возможно формат POST запроса не такой как нужен.
А как можно узнать какой нужен? Дело в том что некоторые ПОСТ запросы работают, а некоторые (аналогичные) нет, причем именно с такой ошибкой метода, как поступать в такой ситуации?
 

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
Что в api сервиса по данному формату POST запроса сказано?
 

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18
Что в 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 , его не сделать на постере.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
Да, экшены не поддерживают это. Пойщите по форуму. Где то был сниппет. Я использовал его для DELETE
 

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
Вот пример заточен под переменные.
Код:
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();
 

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18
Вот пример заточен под переменные.
Код:
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();
это все остается без изменений?
 

one

Client
Регистрация
22.09.2015
Сообщения
6 834
Благодарностей
1 275
Баллы
113
Надо снипет адаптировать под Ваш API который используете. Тут нужна помощь кто шарит в C#.
 

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18
Всем добрый вечер. Столкнулся с такой проблемой что при работе через 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 консоль обычным курлом, все отлично срабатывает, но это все надо сделать в ЗП
 

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18
Никто не знает как можно еще отправлять заголовки кроме как через данные в User Agent?
 

myweb101

Client
Регистрация
29.04.2013
Сообщения
175
Благодарностей
30
Баллы
28
User Agent? тут не причем, А как ты ключ отдаешь? , Хотя скорее всего данные надо отправлять в multipart/form-data
 

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18
User Agent? тут не причем, А как ты ключ отдаешь? , Хотя скорее всего данные надо отправлять в multipart/form-data
Ключ передаю как и всегда во всех методах API, указываю нужные данные в User Agent , как пользовательский заголовок и его понимают. Но с этим API так не получается, он как будто не видит что ему его передают. И проблема точно в API, я проверял другими программами.
 

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18
Нихуевая поддержка для проги за 12к)
 

Evgeny

Client
Регистрация
01.03.2012
Сообщения
127
Благодарностей
12
Баллы
18
Вот пример заточен под переменные.
Код:
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: [email protected]" \
     -H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \
     -H "Content-Type: application/json" \
     --data '{"value":"off"}'
 

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