skip to Main Content

I’m trying to use Mojo::UserAgent to access the eBay API.

One of the options is to use API requests with an XML payload, but I have had no success doing it with Mojo::UserAgent. I didn’t find any options for the $ua->post method.

I also tried

my $tx = $ua->build_tx(POST => $ebay_api_url => $headers);
$tx->req->body($xml_body);
my $res = $ua->start($tx)->res->json;

with no success. The XML body is not set for the request.

What do I need to do to achieve the desired result?

I know about the possibility of using JSON requests, but that is a reserve plan.

3

Answers


  1. Try to post your $xml_body like so:

    my $tx = $ua->post($ebay_api_url => form => $xml_body);
    
    Login or Signup to reply.
  2. You likely want (2nd example in post doc):

    my $tx = $ua->post($ebay_api_url => {Accept => '*/*'} => $xml_body);
    
    Login or Signup to reply.
  3. I faced the similar issue like yours but later I realized that the problem was with the xml data. Please ensure that you do not have any trailing or leading white spaces in your $xml_body. This works:

       my $tx = $ua->post($ebay_api_url => $headers => $xml_body);
    

    Mojolicious and Mojo::UserAgent is awesome and light.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search