Для интеграции различных ИТ решений в уже работающую структуру компании часто приходится писать какие-то прослойки. На опыте отслеживаю необходимость постоянно передавать POST запросы.

Приступим.

Создавать POST запросы помогает модуль LWP::UserAgent — это очень мощное решение, блогадаря которому можно реализовать многое (в том числе cookie-авторизацию c подстановкой версии клиента).

В пример приведу рабоий скрипт для создания заявок в ServiceDesk

#!/usr/bin/perl

use LWP::UserAgent;

my $userAgent = LWP::UserAgent->new(agent => 'perl post');

my $message = qq*
<Operation>
<Details>
<requester>Семёнушкин Андрей Валентинович</requester>
<subject>Тестирование ServiceDesk</subject>
<description>Провести тестирование создания заявки через ServiceDesk API</description>
<requesttemplate>Default Request</requesttemplate>
<site>КОМПАНиЯ</site>
<technician>Иванов Иван Иваныч</technician>
<category>Интернет, почта, сеть</category>
<status>open</status>
</Details>
</Operation>
*;

my $robo_api_key = 'XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX';
my $url = 'http://sd.example.ru/sdpapi/request/';

my $response = $userAgent->post($url,
                    [
                        OPERATION_NAME => 'ADD_REQUEST',
                        TECHNICIAN_KEY => "$robo_api_key",
                        INPUT_DATA => "$message"
                    ]
                );
                   
print $response->error_as_HTML unless $response->is_success;
print $response->as_string;
Tagged with:  

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>