Updated April 13, 2023
Introduction to Python Curl
A curl is a request tool that is used to create network requests so that it allows it to transfer the data across the network, which is done using the command line. In this article, we are going to discussing curl in Python. In python, a curl is a tool for transferring data requests to and from a server using PycURL. This tool is used for testing REST APIs, downloading files, etc. this PycURL is an interface to the libcURL library in Python, and hence the PycURL is capable of inheriting all the capabilities of libcURL.
Working of Python Curl
In this article, Python curl is used for REST API for transferring the data to and from a server. In this, we will see PycURL is a python interface used to fetch the objects from a python program identified by a URL.
Curl is a UNIX command which can send GET, POST, PUT and DELETE request to a URL. There is an HTTP library called “Requests” in Python, but this library needs to be pulled as it’s not any standard module. When this library is used, we can create a simple request, and this request returns a response object which allows access to the various status codes or headers, etc. Let us see an example below with output for each line:
Examples to Implement Python Curl
Below are the examples of Python Curl:
Example #1
Code:
import requests
url ="https://rest.logentries.com/query/saved_queries"
print url
Output:
headers={'x-api-key':'09ba90f6-dcd0-42c0-8c13-5baa6f2377d0'}
print headers
Output:
resp = requests.get(url,headers=headers)
print resp.status_code
Here you will get the output code as status code as 200.
print resp.content
print resp
The above will print the content.
From the above code snippets, we need to first import the request library, and then we create a URL, and we will print the URL, and headers will also be defined and printed. Then we saw that request.get() method is called by passing the URL and headers obtained above to this method. This method returns a response object (resp). In the above code snippets, we can see that we will be printing the content of the request using this response object.get() method which will allow us to access and print the status_code and entire content is printed, and we can also see the list of attributes of this response object that are available. Similarly, we also can use different request methods like requests.put(), request.post(), request.delete(), etc.
We can see the syntax of each of these request methods, and we can see below:
- Call.request.get(URL) this is used to send a GET request to the URL.
- Call.request.post(URL, data= dict) in this dict contains a dictionary of keys and also has values to send to a POST request.
- Call.request.put(URL, data =dict) this also works similarly to POST request; this will also send URL and values to a PUT request.
- Call.requset.delete(URL, data =dict); this also has the same parameters as the above two request methods, and this request also sends the URL and values to the DELETE request method.
In Python, we use PycURL as a CURL tool and are used for testing REST APIs. As this PycURL supports a different variety of protocols like FILE, FTPS, HTTPS, IMAP, SMB, SCP, etc. The installation of PycURL is very simple for any of the operating systems. So below is the sampling process for installing the PycURL.
$ pip install pycurl
$ easy_install pycurl
The above two can be used for installing pycurl in mac or Linux OS. Now we will see how can this be installed in Windows OS, but before this, we need to install a few dependencies. So you can run the below command in the Python terminal as below:
Command:
$ pip install pycurl
If pip is not used, we can use EXE and MSI installers available at PycURL windows.
Example #2
Let us below the sample example for sending an HTTP GET request.
Code:
import pycurl
from io import BytesIO
b_obj = BytesIO()
crl = pycurl.Curl()
crl.setopt(crl.URL,'https://wiki.python.org/moin/BeginnersGuide')
crl.setopt(crl.WRITEDATA, b_obj)
crl.perform()
crl.close()
get_body = b_obj.getvalue()
print('Output of GET request:\n%s' % get_body.decode('utf8'))
Output:
Explanation: In the above program, first, we need to set the URL value such as https://www.mouthshut.com/websites/Educba-com-reviews-925740874. Then we write the data and then perform a file transfer using the curl method perform() for closing the curl session using the close() method. Then we can obtain the content of the HTML request page as shown in the above output screenshot.
Similarly, there are different ways and codes in Python using PycURL for using POST, PUT, DELETE, etc., methods. Let us what code sample can be written for sending an HTTP DELETE request. This method where it deletes the server resource that is identified by the URL. This can be implemented using CUSTOMREQUEST.
Example #3
Below is a sample example:
Code:
import pycurl
crl = pycurl.Curl()
crl.setopt(crl.URL,"http://api.example.com/user/148951")
crl.setopt(crl.CUSTOMREQUEST, "DELETE")
crl.perform()
crl.close()
The above code snippet is to send the HTTP DELETE request. So we can see how to use HTTP DELETE request for sending this request using a curl tool in Python like PycURL.
Conclusion
In this article, we discussed the curl, which is a tool for transferring data from and to the server. In Python, we have the PycURL library, which uses libcurl, a standard library, and PycURL uses its values. We also saw the various methods that are called syntax. In this article, we also saw the usage of PycURL, which we first saw how to import it and how to use this and use various curl methods such as perform(), close(), etc.
Recommended Articles
We hope that this EDUCBA information on “Python Curl” was beneficial to you. You can view EDUCBA’s recommended articles for more information.