Reputation: 43
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.
Upvotes: 2
Views: 836
Reputation: 504
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.
Upvotes: 0
Reputation: 146
You likely want (2nd example in post doc):
my $tx = $ua->post($ebay_api_url => {Accept => '*/*'} => $xml_body);
Upvotes: 0
Reputation: 557
Try to post your $xml_body like so:
my $tx = $ua->post($ebay_api_url => form => $xml_body);
Upvotes: 1