
############
WebUserAgent
############


****
NAME
****


Kernel::System::WebUserAgent - a web user agent lib


***********
DESCRIPTION
***********


All web user agent functions.


****************
PUBLIC INTERFACE
****************


new()
=====


create an object


.. code-block:: perl

     use Kernel::System::WebUserAgent;
 
     my $WebUserAgentObject = Kernel::System::WebUserAgent->new(
         Timeout => 15,                  # optional, timeout
         Proxy   => 'proxy.example.com', # optional, proxy
     );



Request()
=========


return the content of requested URL.

Simple GET request:


.. code-block:: perl

     my %Response = $WebUserAgentObject->Request(
         URL => 'http://example.com/somedata.xml',
         SkipSSLVerification => 1, # (optional)
         NoLog               => 1, # (optional)
 
         # Returns the response content (if available) if the request was not successful.
         # Otherwise only the status will be returned (default behavior).
         ReturnResponseContentOnError => 1, # optional
     );


Or a POST request; attributes can be a hashref like this:


.. code-block:: perl

     my %Response = $WebUserAgentObject->Request(
         URL  => 'http://example.com/someurl',
         Type => 'POST',
         Data => { Attribute1 => 'Value', Attribute2 => 'Value2' },
         SkipSSLVerification => 1, # (optional)
         NoLog               => 1, # (optional)
 
         # Returns the response content (if available) if the request was not successful.
         # Otherwise only the status will be returned (default behavior).
         ReturnResponseContentOnError => 1, # optional
     );


alternatively, you can use an arrayref like this:


.. code-block:: perl

     my %Response = $WebUserAgentObject->Request(
         URL  => 'http://example.com/someurl',
         Type => 'POST',
         Data => [ Attribute => 'Value', Attribute => 'OtherValue' ],
         SkipSSLVerification => 1, # (optional)
         NoLog               => 1, # (optional)
 
         # Returns the response content (if available) if the request was not successful.
         # Otherwise only the status will be returned (default behavior).
         ReturnResponseContentOnError => 1, # optional
     );


returns


.. code-block:: perl

     %Response = (
         Status  => '200 OK',    # http status
         Content => $ContentRef, # content of requested URL
     );


You can even pass some headers


.. code-block:: perl

     my %Response = $WebUserAgentObject->Request(
         URL    => 'http://example.com/someurl',
         Type   => 'POST',
         Data   => [ Attribute => 'Value', Attribute => 'OtherValue' ],
         Header => {
             Authorization => 'Basic xxxx',
             Content_Type  => 'text/json',
         },
         SkipSSLVerification => 1, # (optional)
         NoLog               => 1, # (optional)
 
         # Returns the response content (if available) if the request was not successful.
         # Otherwise only the status will be returned (default behavior).
         ReturnResponseContentOnError => 1, # optional
     );


If you need to set credentials


.. code-block:: perl

     my %Response = $WebUserAgentObject->Request(
         URL          => 'http://example.com/someurl',
         Type         => 'POST',
         Data         => [ Attribute => 'Value', Attribute => 'OtherValue' ],
         Credentials  => {
             User     => 'otrs_user',
             Password => 'otrs_password',
             Realm    => 'OTRS Unittests',
             Location => 'download.znuny.org:80',
         },
         SkipSSLVerification => 1, # (optional)
         NoLog               => 1, # (optional)
 
         # Returns the response content (if available) if the request was not successful.
         # Otherwise only the status will be returned (default behavior).
         ReturnResponseContentOnError => 1, # optional
     );





