python用 GET,POST,PUT,DELETE方式向HTTP提交資料
阿新 • • 發佈:2019-01-01
、JSON簡介
JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。
它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。
JSON採用完全獨立於語言的文字格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。
這些特性使JSON成為理想的資料交換語言。
二、HTTP的請求方法
HTTP/1.1協議中共定義了八種方法(有時也叫“動作”)來表明Request-URI指定的資源的不同操作方式:
. OPTIONS - 返回伺服器針對特定資源所支援的HTTP請求方法。
也可以利用向Web伺服器傳送'*'的請求來測試伺服器的功能性。
. HEAD - 向伺服器索要與GET請求相一致的響應,只不過響應體將不會被返回。
這一方法可以在不必傳輸整個響應內容的情況下,就可以獲取包含在響應訊息頭中的元資訊。
. GET - 向特定的資源發出請求。
注意:GET方法不應當被用於產生“副作用”的操作中,例如在web app.中。
其中一個原因是GET可能會被網路蜘蛛等隨意訪問。
. POST - 向指定資源提交資料進行處理請求(例如提交表單或者上傳檔案)。
資料被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。
. PUT - 向指定資源位置上傳其最新內容。
. DELETE - 請求伺服器刪除Request-URI所標識的資源。
. TRACE - 回顯伺服器收到的請求,主要用於測試或診斷。
. CONNECT - HTTP/1.1協議中預留給能夠將連線改為管道方式的代理伺服器。
. PATCH - 用來將區域性修改應用於某一資源,添加於規範RFC5789。
其中,GET,POST, PUT, DELETE常用於RESTful API的實現,所以下面做的程式碼實現
三、Python實現的json資料以HTTP GET,POST,PUT,DELETE方式進行頁面請求
JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。
它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。
JSON採用完全獨立於語言的文字格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。
這些特性使JSON成為理想的資料交換語言。
二、HTTP的請求方法
HTTP/1.1協議中共定義了八種方法(有時也叫“動作”)來表明Request-URI指定的資源的不同操作方式:
. OPTIONS - 返回伺服器針對特定資源所支援的HTTP請求方法。
也可以利用向Web伺服器傳送'*'的請求來測試伺服器的功能性。
. HEAD - 向伺服器索要與GET請求相一致的響應,只不過響應體將不會被返回。
這一方法可以在不必傳輸整個響應內容的情況下,就可以獲取包含在響應訊息頭中的元資訊。
. GET - 向特定的資源發出請求。
注意:GET方法不應當被用於產生“副作用”的操作中,例如在web app.中。
其中一個原因是GET可能會被網路蜘蛛等隨意訪問。
. POST - 向指定資源提交資料進行處理請求(例如提交表單或者上傳檔案)。
資料被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。
. PUT - 向指定資源位置上傳其最新內容。
. DELETE - 請求伺服器刪除Request-URI所標識的資源。
. TRACE - 回顯伺服器收到的請求,主要用於測試或診斷。
. CONNECT - HTTP/1.1協議中預留給能夠將連線改為管道方式的代理伺服器。
. PATCH - 用來將區域性修改應用於某一資源,添加於規範RFC5789。
其中,GET,POST, PUT, DELETE常用於RESTful API的實現,所以下面做的程式碼實現
三、Python實現的json資料以HTTP GET,POST,PUT,DELETE方式進行頁面請求
閒言少述,直接上程式碼.
1. GET方法 #!/usr/bin/env python # -*- coding:utf-8 -*- # File: http_get.py import urllib2 def http_get(): url='http://192.168.1.13:9999/test' #頁面的地址 response = urllib2.urlopen(url) #呼叫urllib2向伺服器傳送get請求 return response.read() #獲取伺服器返回的頁面資訊 ret = http_get() print("RET %r" % (ret)) 2. POST方法 #!/usr/bin/env python # -*- coding:utf-8 -*- # File http_post.py import urllib import urllib2 import json def http_post(): url='http://192.168.1.13:9999/test' values ={'user':'Smith','passwd':'123456} headers = {'Content-Type': 'application/json'} #這一行最好加上 req = urllib2.Request(url = url, headers=headers, data = json.dumps(values) ) # 生成頁面請求的完整資料 response = urllib2.urlopen(req) # 傳送頁面請求 return response.read() # 獲取伺服器返回的頁面資訊 resp = http_post() print resp 3. PUT方法 #!/usr/bin/env python # -*- coding:utf-8 -*- # File: http_put.py import urllib2 import json def http_put(): url='http://192.168.1.13:9999/test' values={'':''} jdata = json.dumps(values) # 對資料進行JSON格式化編碼 request = urllib2.Request(url, jdata) request.add_header('Content-Type', 'your/conntenttype') request.get_method = lambda:'PUT' # 設定HTTP的訪問方式 request = urllib2.urlopen(request) return request.read() resp = http_put() print resp 4. DELETE方法 #!/usr/bin/env python # -*- coding:utf-8 -*- # File: http_delete.py import urllib2 import json def http_delete(): url='http://192.168.1.13:9999/test' values={'user':'Smith'} jdata = json.dumps(values) request = urllib2.Request(url, jdata) request.add_header('Content-Type', 'your/conntenttype') request.get_method = lambda:'DELETE' # 設定HTTP的訪問方式 request = urllib2.urlopen(request) return request.read() resp = http_delete() print resp