Recently in the use of Python interface testing, found Python in the HTTP request method There are many kinds of, today take some time to organize the relevant content, to share with you, the specific content is as follows:
One, Python comes with library----URLLIB2
Python comes with a library urllib2 used more, simple to use as follows:
Import Urllib2
Response = Urllib2.urlopen (' http://localhost:8080/jenkins/api/json?pretty=true ')
Print Response.read ()
A simple GET request
Import Urllib2
Import Urllib
Post_data = Urllib.urlencode ({})
Response = Urllib2.urlopen (' http://localhost:8080/, Post_data)
Print Response.read ()
Print Response.getheaders ()
This is the simplest urllib2 send post example. More code
Ii. python comes with library--httplib
Httplib is a relatively low-level HTTP request module, Urlib is based on httplib encapsulation. Simple to use as follows:
Import Httplibconn = Httplib. Httpconnection ("www.python.org") conn.request ("GET", "/index.html") r1 = Conn.getresponse () print R1.status, R1.reasondata1 = R1.read () conn.request ("GET", "/parrot.spam") r2 = conn.getresponse () data2 = R2.read () conn.close ()
A simple GET request
Let's look at the POST request again
Import httplib, Urllibparams = Urllib.urlencode ({' @number ': 12524, ' @type ': ' Issue ', ' @action ': ' Show '}) headers = {"Conte Nt-type ":" application/x-www-form-urlencoded "," Accept ":" text/plain "}conn = httplib. Httpconnection ("bugs.python.org") conn.request ("POST", "", params, headers) response = Conn.getresponse () data = Response.read () print dataconn.close ()
I think it's too complicated. Every time you write, you have to go through the document again, look at the third.
Iii. third-party library--requests
Sending a GET request is super simple:
Print Requests.get (' http://localhost:8080). Text
Just a word, then look at the POST request
Payload = {' Key1 ': ' value1 ', ' key2 ': ' value2 '}r = Requests.post ("Http://httpbin.org/post", data=payload) print R.text
Also very simple.
Look again if you want to certify:
url = ' http://localhost:8080 ' r = Requests.post (URL, data={}, Auth=httpbasicauth (' admin ', ' admin ')) print R.status_ Codeprint R.headersprint R.reason
Is it much simpler than URLLIB2, and the requests comes with JSON parsing. This is great.
HTTP requests in Python
Import Urllibparams = Urllib.urlencode ({key:value,key:value}) resulthtml = Urllib.urlopen (' [API or URL] ', params) result = Resulthtml.read () Print result