====== Requests ====== **General Information** The requests library is a http library that allows you to interact with web servers via Python. \\ Sites to Practice Using Requests Against: * Generic http request and response server: http://httpbin.org/ * XKCD Comics: https://xkcd.com/json.html \\ **Checklist** * Python 2 or 3 ---- ====== Install ====== Requests can be installed via pip pip install requests ---- ====== Import ====== import requests ---- ====== Using Requests ====== Requests supports the following http request types. my_site = "http://httpbin.org/" # GET response = requests.get(my_site + "get") # POST response = requests.post(my_site + "post") # PUT response = requests.put(my_site + "put") # DELETE response = requests.delete(my_site + "delete") ##-- head and options responses are not implemented in the httpbin.org website --## # HEAD response = requests.head(my_site) # OPTIONS response = requests.options(my_site) ---- ===== GET ===== Using the GET request and handling the response data. \\ Example: Retrieve the latest XKCD Comic Info ( More Info: https://xkcd.com/json.html) #!/usr/bin/python3 import requests # XKCD Current Comic JSON API my_site = "https://xkcd.com/info.0.json" # Retrieve using GET print("Sending GET to: " + my_site) response = requests.get(my_site) # Extract the JSON object from the response data = response.json() # Show http status code on GET print("Status code is:" + str(response.status_code)) # Show Certain fields from the JSON object print("\n-- The Current XKCD Comic --") print("Comic Title: " + data['title']) print("Comic Text: " + data['alt']) print("Comic Date: " + data['year'] + "-" + data['month'] + "-" + data['day']) print("Comic Image URL: " + data['img']) \\ Output from above example Sending GET to: https://xkcd.com/info.0.json Status code is:200 -- The Current XKCD Comic -- Comic Title: Pie Charts Comic Text: If you can't get your graphing tool to do the shading, just add some clip art of cosmologists discussing the unusual curvature of space in the area. Comic Date: 2018-8-10 Comic Image URL: https://imgs.xkcd.com/comics/pie_charts.png ---- ===== POST ===== Send data in a POST request. \\ Example: Use the httpbin.org site to delay 5 seconds (will replace with a more interesting example later) #!/usr/bin/python import requests # Post the request (this will delay/sleep for 5 seconds) response = requests.post("http://httpbin.org/delay/5") # Extract the JSON object from the response data = response.json() # Show http status code print("Status code is:" + str(response.status_code)) print("Returned response is:") print(data) ----