Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to convert provided single line of cURL code with inline parameters to a format using curl_setopt()
    primarykey
    data
    text
    <p>I'm trying to use an API from avalara.net to get sales tax data and their API documentation lists what appears to be essentially a single line of code with a long string in JSON format for connecting to their API via cURL; I'm not familiar with this single string style and am trying to convert it into a format that follows the php manual's style, for example setting options via curl_setopt() instead of as inline commands like -u and -d but I'm not getting anywhere.</p> <p>I already looked at <a href="https://stackoverflow.com/questions/11244558/php-implement-curl-command-line-to-php-tried-but-getting-error">php - implement curl command line to php, tried but getting error </a> and added their solution - since I didn't get any error message I don't know if my problem was the same but it seemed like it wouldn't hurt to add CURLOPT_FOLLOWLOCATION. Didn't seem to make any difference.</p> <p>I also looked at <a href="https://stackoverflow.com/questions/5604379/convert-curl-line-command-in-php-code">convert curl line command in php code</a> but it didn't help as I already had curl_exec() in my code and had been reading the php manual pages.</p> <p>Their code can be seen at <a href="https://github.com/avadev/AvaTax-Calc-REST-cURL/blob/master/tax-get-POST.txt" rel="nofollow noreferrer">https://github.com/avadev/AvaTax-Calc-REST-cURL/blob/master/tax-get-POST.txt</a> and in relevant part is:</p> <pre><code>curl -u &lt;AccountNumber&gt;:&lt;LicenseKey&gt; -H "Content-Type: text/json" -d '{ --long string of data omitted; see link above for full data-- }' "https://development.avalara.net/1.0/tax/get" </code></pre> <p>I did some research and discovered that -u is for a username/password, -H is a special header, and -d is for the data to be sent... so this is what I put together:</p> <pre><code>// Identify the target URL $url = 'https://development.avalara.net/1.0/tax/get'; // Start the process $curl = curl_init($url); // Tell cURL to fail if an error occurs curl_setopt($curl, CURLOPT_FAILONERROR, 1); // Allow for redirects; we don't know how avalara might route requests curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // Assign the returned data to a variable curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // Set the timeout curl_setopt($curl, CURLOPT_TIMEOUT, 5); // Make sure to use POST method curl_setopt($curl, CURLOPT_POST, 1); // Set cURL to use a login:password for access curl_setopt($curl, CURLOPT_USERPWD, "[1100033004]:[1FC8AED1543C699B]"); // Add some custom header info curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: text/json')); // Use Heredoc syntax to encapsulate data, to avoid having to escape a million quotes $data = &lt;&lt;&lt;EOD { "DocDate": "2013-12-23", "CustomerCode": "12345678123456781234567812345678", "CompanyCode": "EGU", "DocType": "SalesInvoice", "Commit": false, "Client": "Cool ERP,3,5", "DocCode": "29", "DetailLevel": "Tax", "CustomerUsageType": "G", "ExemptionNo": "12334", "Discount": 0, "PurchaseOrderNo":"PO 23423", "ReferenceCode":"", "PosLaneCode":"", "BusinessIdentificationNo":"", "TaxOverride": { "Reason":"Item Returned", "TaxDate":"2013-05-05", "TaxOverrideType":"TaxDate" }, "Addresses": [ { "AddressCode": "Origin", "Line1": "269", "Line2": "7723 Tylers Place Blvd", "City": "West Chester", "Region": "OH", "PostalCode": "45069-4684", "Country": "US" }, { "AddressCode": "Dest", "Line1": "1060 W. Addison St", "City": "Chicago", "Region": "IL", "PostalCode": "60613-4566", "Country": "US" } ], "Lines": [ { "LineNo": "00001", "DestinationCode": "Dest", "OriginCode": "Origin", "ItemCode": "SP-001", "Description": "Eyeglasses", "TaxCode": "PC030147", "Qty": 1, "Amount": 100 } ] } EOD; // That EOD ends the encapsulation via Heredoc syntax // Note that the actual code does not indent the closing of Heredoc; only indented for stack overflow code view // Set the POST data curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Execute the transaction $r = curl_exec($curl); // Close the connection curl_close($curl); // Print the results for debugging print_r($r); </code></pre> <p>However, when I try to view the web page, I see nothing - no error message, no results, nothing.</p> <p>I've looked at some of the other posts here on stackoverflow and in the php manual - I'm not sure at this point how to even debug it as I'm not getting any error messages back. Any thoughts would be appreciated.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload