【Python】python透過get方式,post方式傳送http請求和接收http響應
本文連結:https://blog.csdn.net/allen_ydc/article/details/50239917
1.GET方法
get方法是直接將要請求的資料放在url中,下面用httplib和urllib2模擬使用者登入。
1)
#URL地址
url_Addr = "
#使用者登陸需要傳遞的引數
params = urllib.urlencode({'name': user_name, 'password': user_pwd, 'appId': app_Id})
#我安裝的python證照好像有問題,失能校驗
ssl._create_default_https_context = ssl._create_unverified_context
#將引數和URL組成一個URL
req = urllib2.Request(url_Addr+params)
res = urllib2.urlopen(req)
data = res.read()
res.close()
2)
#URL地址
url_Addr = "apac-axlprod01-api.com:8081"
#使用者登陸需要傳遞的引數
params = urllib.urlencode({'name': user_name, 'password': user_pwd, 'appId': app_Id})
ssl._create_default_https_context = ssl._create_unverified_context
conn = httplib.HTTPSConnection(url_Addr)
#將引數和URL組成一個URL
conn.request("GET", "/userLogin?" + params)
response = conn.getresponse()
data = response.read()
response.close()
2.POST方法
POST方法是直接將要請求的資料放在data或body中,不能放在url中,下面用httplib和urllib2模擬使用者登入。
1)
#URL地址
url_Addr = "
#使用者登陸需要傳遞的引數
params = urllib.urlencode({'name': user_name, 'password': user_pwd, 'appId': app_Id})
ssl._create_default_https_context = ssl._create_unverified_context
#傳入URL和Data
req = urllib2.Request(url = url_Addr,data = params)
res = urllib2.urlopen(req)
data = res.read()
res.close()
2)
#URL地址
url_Addr = "apac-axlprod01-api.com"
#headers
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
#使用者登陸需要傳遞的引數
params = urllib.urlencode({'name': user_name, 'password': user_pwd, 'appId': app_Id})
ssl._create_default_https_context = ssl._create_unverified_context
conn = httplib.HTTPSConnection(url_Addr,8081)
#傳入URL、body和headers
conn.request("POST","/userLogin",params,headers)
response = conn.getresponse()
data = response.read()
response.close()
httplib實現了http和https的客戶端協議,但是在python中,模組urllib和urllib2對httplib進行了更上層的封裝
下面詳細介紹httplib提供的常用型別和方法。
httplib.HTTPConnection ( host [ , port [ , strict [ , timeout ]]] )
HTTPConnection類的建構函式,表示一次與伺服器之間的互動,即請求/響應。引數host表示伺服器主機, 如:;port為埠號,預設值為80; 引數strict的 預設值為false, 表示在無法解析伺服器返回的狀態行時( status line) (比較典型的狀態行如: HTTP/1.0 200 OK ),是否拋BadStatusLine 異常;可選引數timeout 表示超時時間。
HTTPConnection提供的方法:
HTTPConnection.request ( method , url [ , body [ , headers ]] )
呼叫request 方法會向伺服器傳送一次請求,method 表示請求的方法,常用有方法有get 和post和head ;url 表示請求的資源的url ;body 表示提交到伺服器的資料,必須是字串(如果method 是"post" ,則可以把body 理解為html 表單中的資料);headers 表示請求的http 頭。
HTTPConnection.getresponse ()
獲取Http 響應。返回的物件是HTTPResponse 的例項,關於HTTPResponse 在下面 會講解。
HTTPConnection.connect ()
連線到Http 伺服器。
HTTPConnection.close ()
關閉與伺服器的連線。
HTTPConnection.set_debuglevel ( level )
設定高度的級別。引數level 的預設值為0 ,表示不輸出任何除錯資訊。
httplib.HTTPResponse
HTTPResponse表示伺服器對客戶端請求的響應。往往透過呼叫HTTPConnection.getresponse()來建立,它有如下方法和屬性:
HTTPResponse.read([amt])
獲取響應的訊息體。如果請求的是一個普通的網頁,那麼該方法返回的是頁面的html。可選引數amt表示從響應流中讀取指定位元組的資料。
HTTPResponse.getheader(name[, default])
獲取響應頭。Name表示頭域(header field)名,可選引數default在頭域名不存在的情況下作為預設值返回。
HTTPResponse.getheaders()
以列表的形式返回所有的頭資訊。
HTTPResponse.msg
獲取所有的響應頭資訊。
HTTPResponse.version
獲取伺服器所使用的http協議版本。11表示http/1.1;10表示http/1.0。
HTTPResponse.status
獲取響應的狀態碼。如:200表示請求成功。
HTTPResponse.reason
返回伺服器處理請求的結果說明。一般為”OK”
————————————————
版權宣告:本文為CSDN博主「allen_ydc」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/allen_ydc/article/details/50239917
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-2150791/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python傳送HTTP POST請求PythonHTTP
- java傳送http的get、post請求JavaHTTP
- HTTP 請求和響應格式HTTP
- PHP 傳送 HTTP 請求的幾種方式PHPHTTP
- Android 傳送HTTP GET POST 請求以及通過 MultipartEntityBuilder 上傳檔案(二)AndroidHTTPUI
- 【轉】怎麼用PHP傳送HTTP請求(POST請求、GET請求)?PHPHTTP
- 淺談HTTP中GET和POST請求方式的區別HTTP
- Golang:使用go-resty/resty傳送http請求get和postGolangRESTHTTP
- Http請求get與post請求方式的各種相關面試總結HTTP面試
- 以Raw的方式傳送POST請求
- HTTP Get,Post請求詳解HTTP
- Go使用net/http庫傳送GET請求GoHTTP
- Go HTTP GET 請求可以傳送 body 嗎GoHTTP
- Java用HttpClient3傳送http/https協議get/post請求,傳送map,jsoJavaHTTPclient協議JS
- oracle使用utl_http包傳送post請求OracleHTTP
- curl 傳送 POST 請求的四種方式
- Python中get、post請求詳解(HTTP請求頭、狀態碼)PythonHTTP
- Java Http Get Post 請求工具類JavaHTTP
- java傳送GET和post請求Java
- PHP傳送POST和GET請求PHP
- HTTP GET請求傳bodyHTTP
- perl傳送http請求HTTP
- java傳送http請求JavaHTTP
- HTTP的請求與響應以及使用Chrome的檢視方式HTTPChrome
- httprequest- post- get -傳送請求HTTP
- php 利用socket傳送GET,POST請求PHP
- Java用HttpClient3傳送http/https協議get/post請求,傳送map,json,xml,txt資料JavaHTTPclient協議JSONXML
- Tomcat、http、get/postTomcatHTTP
- 中止請求和超時 跨域的HTTP請求 認證方式 JSONP跨域HTTPJSON
- Python模擬HTTP Post上傳檔案PythonHTTP
- 使用js語文json字串透過get方式傳值,然後用request接收JSON字串
- http請求之get和post的區別HTTP
- 【python介面自動化】- 使用requests庫傳送http請求PythonHTTP
- get請求和post請求的區別
- vue 發起get請求和post請求Vue
- Android Http請求框架一:Get 和 Post 請求AndroidHTTP框架
- 使用httpclient傳送http請求HTTPclient
- 從HTTP請求響應迴圈探索Flask的基本工作方式HTTPFlask