HItesh Tank
HItesh Tank

Reputation: 686

How to convert Php CURL request to command line curl

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

Answers (3)

pmehta
pmehta

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

Vasily
Vasily

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

Gergely Lukacsy
Gergely Lukacsy

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:

  • click "Code" (Right under the "Save" button)
  • choose "cURL" from the dropdown list
  • click "copy to Clipboard"

...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

Related Questions