Запрос методом OPTIONS (http method)

Greez

Client
Регистрация
05.02.2014
Сообщения
82
Благодарностей
29
Баллы
18
Подскажите как сделать такой запрос, стандартно есть экшены только на GET и POST.
Использовать C#? Пытаюсь гуглить по разному и ничего вразумительного не нахожу.
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Чувак, ты совсем вовремя, мне тоже нужен запрос OPTIONS.
 
  • Спасибо
Реакции: Radzhab и Greez

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 226
Благодарностей
5 844
Баллы
113

Greez

Client
Регистрация
05.02.2014
Сообщения
82
Благодарностей
29
Баллы
18
Я правильно понял что надо взять пример get-запроса на C# и подставить вместо метода get в коде строку по ссылке?
 
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
Подскажите как сделать такой запрос, стандартно есть экшены только на GET и POST.
Использовать C#? Пытаюсь гуглить по разному и ничего вразумительного не нахожу.
Метод OPTIONS представляет запрос информации об опциях соединения, доступных в цепочке запросов/ответов, идентифицируемой запрашиваемым URI (Request-URI). Этот метод позволяет клиенту определять опции и/или требования, связанные с ресурсом, или возможностями сервера, но не производя никаких действий над ресурсом и не инициируя его загрузку.

Если ответ сервера - это не сообщение об ошибке, то ответ НЕ ДОЛЖЕН содержать иной информации объекта, кроме той, которую можно рассматривать как опции соединения (например Allow - можно рассматривать как опцию соединения, а Content-Type - нет). Ответы на этот метод не кэшируются.

Если запрашиваемый URI (Request-URI) - звездочка ("*"), то запрос OPTIONS предназначен для обращения к серверу в целом. Если код состояния в ответе - 200, то ответу СЛЕДУЕТ содержать любые поля заголовка, которые указывают опциональные возможности, реализуемые сервером (например, Public), включая любые расширения, не определенные данной спецификацией, в дополнение к соответствующим общим полям или полям заголовка ответа (response-header). Запрос "OPTIONS *" может быть применен через прокси-сервер с определением адресуемого сервера в запрашиваемом URI (Request-URI) с пустым путем.

Если запрашиваемый URI (Request-URI) не звездочка ("*"), то запрос OPTIONS применяется к опциям, которые доступны при соединении с указанным ресурсом. Если код состояния ответа - 200, то ответу СЛЕДУЕТ содержать любые поля заголовка, которые указывают опциональные возможности, реализуемые сервером и применимые к указанному ресурсу (например, Allow), включая любые расширения, не определенные данной спецификацией, в дополнение к соответствующим общим полям или полям заголовка ответа (response-header). Если запрос OPTIONS передается через прокси-сервер, то последний редактирует ответ, исключая те опции, которые не предусмотрены возможности этого прокси-сервера.
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Метод OPTIONS представляет запрос информации об опциях соединения, доступных в цепочке запросов/ответов, идентифицируемой запрашиваемым URI (Request-URI). Этот метод позволяет клиенту определять опции и/или требования, связанные с ресурсом, или возможностями сервера, но не производя никаких действий над ресурсом и не инициируя его загрузку.

Если ответ сервера - это не сообщение об ошибке, то ответ НЕ ДОЛЖЕН содержать иной информации объекта, кроме той, которую можно рассматривать как опции соединения (например Allow - можно рассматривать как опцию соединения, а Content-Type - нет). Ответы на этот метод не кэшируются.

Если запрашиваемый URI (Request-URI) - звездочка ("*"), то запрос OPTIONS предназначен для обращения к серверу в целом. Если код состояния в ответе - 200, то ответу СЛЕДУЕТ содержать любые поля заголовка, которые указывают опциональные возможности, реализуемые сервером (например, Public), включая любые расширения, не определенные данной спецификацией, в дополнение к соответствующим общим полям или полям заголовка ответа (response-header). Запрос "OPTIONS *" может быть применен через прокси-сервер с определением адресуемого сервера в запрашиваемом URI (Request-URI) с пустым путем.

Если запрашиваемый URI (Request-URI) не звездочка ("*"), то запрос OPTIONS применяется к опциям, которые доступны при соединении с указанным ресурсом. Если код состояния ответа - 200, то ответу СЛЕДУЕТ содержать любые поля заголовка, которые указывают опциональные возможности, реализуемые сервером и применимые к указанному ресурсу (например, Allow), включая любые расширения, не определенные данной спецификацией, в дополнение к соответствующим общим полям или полям заголовка ответа (response-header). Если запрос OPTIONS передается через прокси-сервер, то последний редактирует ответ, исключая те опции, которые не предусмотрены возможности этого прокси-сервера.
Гуглить и я умею
Пример OPTIONS запроса:

OPTIONS /aconv/upload/ HTTP/1.1
Host: s92.123apps.com
Connection: keep-alive
Access-Control-Request-Method: POST
Origin: http://online-audio-converter.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41
Access-Control-Request-Headers: accept, content-type
Accept: */*
Referer: http://online-audio-converter.com/ru/
Accept-Encoding: gzip, deflate, lzma, sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
X-Compress: null
 
Последнее редактирование:
  • Спасибо
Реакции: Greez

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 226
Благодарностей
5 844
Баллы
113
Я правильно понял что надо взять пример get-запроса на C# и подставить вместо метода get в коде строку по ссылке?
Вам нужно самому написать на C# - действие Свой Код>С#.
 

Oleg1357

Client
Регистрация
07.12.2016
Сообщения
66
Благодарностей
72
Баллы
18
Подкиньте, пожалуйста, рабочий код для такого запроса если у кого есть
 

Folt

Client
Регистрация
16.12.2016
Сообщения
71
Благодарностей
11
Баллы
8

lemniscata

Client
Регистрация
01.04.2019
Сообщения
13
Благодарностей
12
Баллы
3
Если всё еще кому-то нужно, то вот рабочий вариант (также подходит и для других подобных запросов. Например, под PUT.
C#:
var response = ZennoPoster.HTTP.Request(
ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.OPTIONS, // тип запроса
"http://somelink.com/example, // адрес
"", // контент запроса
"application/json",  // тип контента
"",  // тут можно прокси прописать
"UTF-8", // кодировка
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly, // что получать в ответ
30000, // таймаут
"", // куки
project.Variables["useragent"].Value, // юзерагент
false, //разрешить редиректы
0, //количество редиректов
    new[] {
        "Host: api.somelink.com",
    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
     "Accept-Language: en-US,en;q=0.6",
     "Accept-Encoding: gzip, deflate, br",
        "Access-Control-Request-Method: POST",
        "Access-Control-Request-Headers: authorization,content-type,x-devicetype",
        "Origin: http://somelink.com",
        "Connection: keep-alive"
    } // дополнительные заголовки
);
return response; // положить ответ в переменную
 

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