I’m coding a tool to get Whois info, and I need to use the WHMCS API for it.
This is the code they provide:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://www.example.com/includes/api.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( array( 'action' => 'DomainGetWhoisInfo', // See https://developers.whmcs.com/api/authentication 'username' => 'IDENTIFIER_OR_ADMIN_USERNAME', 'password' => 'SECRET_OR_HASHED_PASSWORD', 'domainid' => '1', 'responsetype' => 'json', ) ) ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch);
I want to use this request without PHP, and inside Python. What library should I use and how do I set the variables in the payload?(php or python-style?)
Advertisement
Answer
What library should I use
requests
is popular python
module for working with HTTP(S) requests, note however that it is external module and needs to be installed as follows
pip install requests
It is not hard to do, but if you are not allowed to install external module you can not use it. In such situation you might use urllib.request
built-in module.
how do I set the variables in the payload?
Just translate your array
to python
‘s dict
and use it as data
argument, requests Quickstart provide following example
r = requests.post('https://httpbin.org/post', data={'key': 'value'})
{'key': 'value'}
is python
‘s equivalent to PHP7
‘s
array('key' => 'value')
and {'key1': 'value1', 'key2': 'value2'}
would be array('key1' => 'value1', 'key2' => 'value2')
and so on