Reputation: 686
How to translate following php curl request to curl executable command.
$curlOpts = array(
CURLOPT_PORT => "3000",
CURLOPT_URL => 'www.example.com',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array("Cookie: connect.sid=aASD234SDFfds", "content-type:application/json"),
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => {"email": "test.com",
"password": "123456"},
);
curl_setopt_array($ch, $curlOpts);
$output = curl_exec($ch);
Respected Curl command which I want
curl -X GET --header 'Accept: application/json' 'http://www.example.com?sort=clicks&order=des'
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \
"email": "test.com", \
"password": "123456" \
}' 'http://example.com/login'
Please help me for the same.
Upvotes: 36
Views: 32434
Reputation: 11
Check the below link for PHP Constant values of CURL. E.X. While you check curlopt array by print_r($curlout). You get all constant values.
Array ( [78] => 30 [19913] => 1 [13] => 120 [32] => 0 [10018] => storeden-php-1.1b [10023] => Array ( [0] => key: f2e7fd282883935b7a52ae4757917e1ec6026076368641084feec997023001099 [1] => exchange: a5622d643d09785a679c381238a067cfb60edf0c2bdd290b6a1435d50e [2] => Expect: ) [10002] => ApiURL)
https://gist.github.com/bayleedev/4626922
check the above array keys where it defines the constant values CURLOPT_URL......................10002
Use the above constant identifier and add their respective identifier in Postman.
After that you can check the code with curl convert to transform PHP to curl commandline.
Hope that help you.
Upvotes: 1
Reputation: 1031
take a look at https://github.com/biganfa/php2curl. Start a webserver, send your request, and you will get the command line cURL version of the request using the library.
Upvotes: 3
Reputation: 3074
Please note that this is a workaround only.
Try to assemble your http request in Postman which is a really rich tool for testing APIs. It is a Chrome plugin, and available from the Chrome webstore for free (link). Alternatively, you can install it as a standalone client too from their website.
It has a nice feature which let you to grab the curl command wrapped in different languages/formats of your preference. In your case, in BASH too.
Put the request together then:
...and that's it, you have your preformatted cURL command line.
Also, there's a tool called cURL-to-PHP written in JavaScript, which does the exact thing you'd like to do.
If you take some time, you can translate the converter logic to PHP with little effort (eg. you don't need to research every aspects of cURL internals).
Upvotes: 3