hello all,
trying to post some JSON while using HTTP::Tiny. To my idea I have an okay structure of the data to post and I'm also authorised to post however I get the message 'content' => 'Cannot parse URL: \'HASH(0x7fc154e1fb50)\'.
The full code and result I see from data::Dumper is pasted below. Maybe someone can tell me what I'm doing wrong?
Best,
Gert
sub create_external_inv {
my $headers = {
Accept => "application/json",
'Content-Type' => "application/json",
Authorization => "Bearer 123"
};
my $url = "https://moneybird.com/api/v2/123/external_sales_invoice
+s";
my $data = (
{
external_sales_invoices => {
"reference" => "M-8426",
"date" => "2020-03-14",
"contact_id" => 456,
"details_attributes" => [
{
"description" => "coffee",
"price" => 2.25,
"tax_rate_id" => 891
}
]
}
}
);
my $agent = HTTP::Tiny->new;
my $res =
$agent->post( { url => $url, content => $data, headers => $heade
+rs } );
print Dumper $res;
if ( $res->{success} ) {
print "Okay!\n";
}
else {
print "\n\Nope...\n\n";
}
}
The result I see in the log from my Dancer2 app
'content' => 'Cannot parse URL: \'HASH(0x7fc154e1fb50)\'
',
'url' => {
'content' => {
'external_sales_invoices' => {
'reference' => 'M-8426',
'details_attributes' => [{'tax_rate_id' => '891,
'description' => 'coffee',
'price' => '2.25}],
'date' => '2020-03-14',
'contact_id' => '456
}
},
'headers' => {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer 123'
},
'url' => 'https://moneybird.com/api/v2/123/external_sales_i
+nvoices'
},
'reason' => 'Internal Exception',
'success' => '',
'status' => 599,
'headers' => {
'content-type' => 'text/plain',
'content-length' => 41
}
};
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.