python實現的json數據以HTTP GET,POST,PUT,DELETE方式頁面請求

轉自 http://blog.chinaunix.net/uid-26000296-id-4394470.html

1、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成爲理想的數據交換語言。
html

2、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

3、Python實現的json數據以HTTP GET,POST,PUT,DELETE方式進行頁面請求

閒言少述,直接上代碼.
web

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))
json

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}

    jdata = json.dumps(values)             # 對數據進行JSON格式化編碼
    req = urllib2.Request(url, jdata)       # 生成頁面請求的完整數據
    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
app

相關文章
相關標籤/搜索