Имя пользователя. Должно совпадать с логином в Яндекс.Паспорте, заданным при регистрации.
Значение API-ключа, выданного при регистрации.
Правило фильтрации результатов поиска (исключение из результатов поиска документов в соответствии с одним из правил). Возможные значения:
Если параметр не задан, используется умеренная фильтрация.
Идентификатор страны или региона поиска. Определяет правила ранжирования документов. Например, если передать в данном параметре значение «11316» (Новосибирская область), при формировании результатов поиска используется формула, определенная для Новосибирской области.
Список идентификаторов часто используемых стран и регионов приведен в приложении.
Возможные значения зависят от используемого типа поиска:
Инициирует проверку пользователя для возможной защиты от роботов.
Имя пользователя. Должно совпадать с логином в Яндекс.Паспорте, заданным при регистрации.
Значение API-ключа, выданного при регистрации.
Правило фильтрации результатов поиска (исключение из результатов поиска документов в соответствии с одним из правил). Возможные значения:
Если параметр не задан, используется умеренная фильтрация.
Идентификатор страны или региона поиска. Определяет правила ранжирования документов. Например, если передать в данном параметре значение «11316» (Новосибирская область), при формировании результатов поиска используется формула, определенная для Новосибирской области.
Список идентификаторов часто используемых стран и регионов приведен в приложении.
Возможные значения зависят от используемого типа поиска:
Инициирует проверку пользователя для возможной защиты от роботов.
Формат тела запроса
Параметр
Описание
request
Группирующий тег. Дочерние теги содержат параметры поискового запроса.
Текст поискового запроса. При обработке учитываются особенности языка запросов Яндекса (вместо специальных символов необходимо использовать соответствующие экранированные последовательности).
На запрос наложены следующие ограничения: максимальная длина запроса — 400 символов; максимальное количество слов — 40.
Правило сортировки результатов поиска. Возможные значения:
Если параметр не задан, результаты сортируются по релевантности.
При сортировке по времени изменения параметр может содержать атрибут order — порядок сортировки документов. Возможные значения:
Максимальное количество пассажей, которое может быть использовано при формировании сниппета к документу. Пассаж — это фрагмент найденного документа, содержащий слова запроса. Пассажи используются для формирования сниппетов — текстовых аннотаций к найденному документу.
Допустимые значения — от 1 до 5. Результат поиска может содержать меньшее количество пассажей, чем значение, указанное в данном параметре.
Если параметр не задан, для каждого документа возвращается не более четырех пассажей с текстом запроса.
Номер запрашиваемой страницы поисковой выдачи. Определяет диапазон позиций документов, возвращаемых по запросу. Нумерация начинается с нуля (первой странице соответствует значение «0» ).
Если параметр не задан, возвращается первая страница поисковой выдачи.
groupings
Группирующий тег. Дочерний тег содержит параметры группировки результатов.
mode — метод группировки. Возможные значения:
Если параметр не задан, используется группировка по доменам.
Параметр
Описание
request
Группирующий тег. Дочерние теги содержат параметры поискового запроса.
Текст поискового запроса. При обработке учитываются особенности языка запросов Яндекса (вместо специальных символов необходимо использовать соответствующие экранированные последовательности).
На запрос наложены следующие ограничения: максимальная длина запроса — 400 символов; максимальное количество слов — 40.
Правило сортировки результатов поиска. Возможные значения:
Если параметр не задан, результаты сортируются по релевантности.
При сортировке по времени изменения параметр может содержать атрибут order — порядок сортировки документов. Возможные значения:
Максимальное количество пассажей, которое может быть использовано при формировании сниппета к документу. Пассаж — это фрагмент найденного документа, содержащий слова запроса. Пассажи используются для формирования сниппетов — текстовых аннотаций к найденному документу.
Допустимые значения — от 1 до 5. Результат поиска может содержать меньшее количество пассажей, чем значение, указанное в данном параметре.
Если параметр не задан, для каждого документа возвращается не более четырех пассажей с текстом запроса.
Номер запрашиваемой страницы поисковой выдачи. Определяет диапазон позиций документов, возвращаемых по запросу. Нумерация начинается с нуля (первой странице соответствует значение «0» ).
Если параметр не задан, возвращается первая страница поисковой выдачи.
groupings
Группирующий тег. Дочерний тег содержит параметры группировки результатов.
mode — метод группировки. Возможные значения:
Если параметр не задан, используется группировка по доменам.
При необходимости используйте Валидатор XML-фидов сервиса Яндекс.Вебмастер. Подробные сведения о валидации приведены в приложении.
Работа с параметрами запроса в URL, с примером из реальной практики.
В статье разберем что такое параметры запроса, познакомимся c так называемыми utm-метками, и научимся работать с параметрами запроса на примере одной ситуации из моей практики.
Внимание! Поскольку статья для начинающих веб-разработчиков, многие понятия в статье даются в упрощенном виде для облегчения понимания.
Параметры запроса
Зачастую, кроме адреса страницы сайта, в ссылке требуется передавать какие-то дополнительные параметры.
Представим, что есть каталог товаров в интернет-магазине. В каталоге может быть сотни и тысячи наименований товара, и, если выводить их на одной странице, она получится просто огромной, и будет грузится долгое время.
Всем известен выход из этой ситуации: нужно разбить каталог на страницы. Все вы видели такие страницы, там десять или двадцать товаров, а также ссылки на другие страницы каталога.
Как же сформированы подобные ссылки? Вот здесь-то и используются параметры запроса в URL.
Часто параметры запроса называютGET-параметрами. Это не совсем верно. Да, при запросе методомGET, эти параметры видны в строке браузера, но их с тем же успехом можно передавать иPOST-запросом.
Вот именно строку запроса, в большинстве случаев называют GET-параметрами.
Эта строка состоит из пар имя_параметра=значение_параметра.
Пары разделены между собой амперсандом &.
Строка запроса отделена от адреса (с путем) знаком вопроса ?
В адресе выше мы имеем два параметра запроса:
Они означают, что ссылка ведет на 1-ю страницу каталога, и выводить на странице нужно 20 товаров.
UTM-метки
Одним из распространенных примером применением параметров запроса являются так называемые UTM-метки.
UTM-метки – это, по сути, набор параметров запроса с заданными именами.
Они «де-факто» являются стандартом меток для сбора статистики. Практически все системы аналитики, CRM-системы, многочисленные сервисы из самых разных областей, поддерживают работу с UTM-метками.
Имена основных меток:
Пример из практики
Я технически поддерживаю один из обучающих проектов.
Имела место следующая ситуация.
Проблема была в том, что при переходе по ссылке на страницу с формой, UTM-метки туда не передавались, и, соответственно, невозможно было понять по какому каналу рекламы пришел человек, который заполнил эту форму.
Формулируем задачу для решения этой проблемы: нужно взять UTM-метки из строки запроса лендинга и подставить их в ссылку на страницу с формой.
Сделать это нужно было максимально быстро, т.е. «вчера» поскольку на страницу уже шел трафик.
Работа с параметрами запроса на сервере (PHP)
Задача была решена парой строчек кода на PHP.
Ниже код двух страничек, первая это эмуляция лендинга со ссылкой на эмуляцию страницы с формой, вторая это эмуляция страницы с формой.
Вторая страница нужна, чтобы вы могли скопировать ее посмотреть результат перехода по ссылке с лендинга.
в принципе, я думаю, что не могу, но был бы очень рад, если бы оказалось, что это не так.
есть ли способ передать информацию в качестве параметра POST, а не получить из кликабельной ссылки HREF?
Update: извините, мне не разрешено использовать JS-я должен был сказать, мой плохо!—2—>
обновление до обновления: похоже, @Rob находится на somethign с «Вы можете использовать кнопку вместо якоря и просто стиль кнопки, чтобы выглядеть как ссылка. Таким образом, вы можете иметь свои значения в скрытых полях внутри той же формы, которые будут отправлены по почте»
7 ответов
вы можете использовать форму в стиле ссылки, не требуется JavaScript:
вы должны выбрать, Использовать ли POST или GET на основе действия. Любой деструктивные действие, то есть то, что постоянно изменяет состояние сервера (удаление, добавление, редактирование), всегда должно вызываться запросами POST. Любой чистый «поиск информации» должен быть доступен через неизменяемый URL (т. е. GET требования заказчика.)
чтобы сделать запрос POST, вам нужно создать
Я также хотел бы поделиться своей реализацией. Это требует некоторого javascript, хотя.
хорошая вещь об этом, заключается в том, что, вопреки запросам GET, он не показывает параметры на URL-адресе, что безопаснее.
нет, вы не можете сделать это. Я приглашаю вас прочитать определение поста:http://en.wikipedia.org/wiki/POST_%28HTTP%29
во-первых, отказ от ответственности: я не думаю, что брак сообщение с параметрами URL является блестящей идеей. Как и другие, вам лучше использовать скрытую форму для передачи информации о пользователе.
однако вопрос заставил меня полюбопытствовать, как PHP обрабатывает такой случай. Оказалось, что теоретически это возможно. Вот доказательство:
post_url_params.HTML-код
post_url_params.в PHP
выход
Это может работать, если PHP-скрипт генерирует форму для каждой записи со скрытыми полями, а href использует javascript для публикации формы.
Есть ресурс, в котором для того, чтобы получить изображение нужно нажать по нему. После чего изображение сгенерируется.
Если попытаться отобразить изображение, по прямому адресу, без клика по нему, то оно не отобразится. Для этого я в URL время менял.
Суть в том, что я считаю, что браузер генерирует POST запрос и после чего сервер генерирует нужное изображение.
Зато есть вкладка Параметры, где можно найти имя запрашиваемого изображения. Что это за параметры? Как их отредактировать и вписать туда новое значение, после чего отправить их?
Параметры запроса – это key-value данные, которые записываются в url запроса после знака вопроса («свистка»).
Грубо говоря, если мы обращаемся к адресу toster.ru и хотим передать параметр herp со значением derp, то адрес примет следующий вид: toster.ru/?herp=derp
Кроме того, множественные параметры должны разделяться знаком «&». Т.е. если помимо derp мы хотим передать также foo со значением bar, конечный url будет таким: toster.ru/?herp=derp&foo=bar
Собственно, когда вы в url изменяли время – вы меняли значение соответствующего параметра.
Да, так как в post невозможно передать параметры по аналогии с get, значения будут упакованы внутри тела запроса в зависимости от того, какой у него указан content-type.
Чтобы изменить здесь данные, думаю, лучше воспользоваться специальным плагином (какой-нибудь «Poster» или его аналоги).
Учимся создавать http сервис (часть четвертая). Изучение метода POST http запроса (передача текстовых данных)
-Перенесем данные справочника «Номенклатура» из базы источник в базу приемник при помощиhttpсервиса, используяPOSTзапрос. Переносить данные будем вJSONформате.
Подготовим базу источник.
-Создаем чистую информационную базу.
-Назовем ее «БазаИсточник»
-Добавляем в нее несколько объектом метаданных:
Реквизит «Атрикул» тип строка 25
— Обработка «Изучение POST Запросов»
Подготовим базу приемник
-Создаем чистую информационную базу
-Назовем ее «БазаПриемник»
-Добавим в нее несколько объектов метаданных:
Реквизит «Атрикул» тип строка 25
-Создаем новый http сервис «Изучение POST Запросов»
-Корневой URL – « post »
-Переходим на закладку «Шаблоны URL »
— Добавляем новый шаблон «ЗагрузкаНоменклатуры»
-Создадим шаблон, назовем его « product _ json »
— Добавим новый метод «ЗагрузкаНоменклатурыJSON»
-Публикуем http сервис на веб сервере, если забыли, как это сделать, смотрите статью
После публикации у меня получился следующий путь «http://localhost/post_test/hs/post/product_json/»
Localhost – IP адрес
post_test – имя публикации
hs – признак http сервиса
post – корневой каталог
Переходим в базу источник.
-Открываем обработку «Изучение POST Запросов»
-Создадим форму. На форме разместим кнопку «Перенести номенклатуру JSON »
Шаблон, по которому мы подключаемся из 1С к http сервису следующий:
-Создаем объект типа «HTTPСоединение», в его конструкторе передаем ip адрес http сервиса, например, так:
— Создаем объект типа «HTTPЗапрос», в его конструкторе указываем адрес ресурса и заголовки, например так:
-Помещаем данные, которые мы хотим отправить на сервер в тело запроса. Мы хотим передать текстовые данные, для этого мы воспользуемся методом «УстановитьТелоИзСтроки»
-Отправляем данные на сервер. (пример кода)
Еще раз. Для того чтобы передать данные на сервер, надо эти данные поместить в тело POST запроса. В заголовке необходимо указать какого типа эти данные.
-Открываем базу источник в режиме предприятия и добавляем в справочник «Номенклатура» несколько элементов.
Базу источник мы подготовили!
Переходим в базу приемник
— Добавляем общий модуль «ОбщегоНазначения»
-В нем описываем две процедуры
-Переходим в обработчик метода «ЗагрузкаНоменклатурыJSON» http сервиса «ИзучениеPOSTЗапросов»
-Описываем в нем следующий код
Базу приемник мы подготовили.
Запускаем обработку из базы источник. Нажимаем на кнопку. И в базе приемнике создается номенклатура.
Видео инструкция тут:
Там же, вы сможете скачать файлы конфигурации источника и приемника.
Итак, мы решили поставленную задачу.
При реализации данного функционала была использована платформа 1С:Предприятие 8.3 (8.3.12.1567)
Специальные предложения
обработка ИзучениеPOSTЗапросов а на картинке Изчение POSTЗапросов
для JSON наверное правильнее HTTPЗапрос.Заголовки.Вставить(«Content-Type»,»application/json»);
А передать данные в теле запроса можно и методами PATCH, PUT, а не только POST.
Так, распространённая практика при создании REST API использовать POST для создание объекта, а PUT/PATCH для его изменения (метод DELETE, соответственно, используется для удаления).
А вообще, все эти методы используются на усмотрение программиста. Встречался с таким, что для всех запросов использовался только POST (и для получения данных, и для передачи).
По поводу заголовка Content-Type. Вы указываете text/plain, а передаёте json (Content-Type: application/json). А если учесть, что база-приёмник ни как этот заголовок не использует, то его вообще можно не передавать.