logo
Loading...

request.get和request.post輸出的東西不同? - Cupoy

問題:為什麼使用request.get和request.post,得到的output會不同?code...

request.get,request.post

request.get和request.post輸出的東西不同?

2019/11/29 上午 02:01
Python網路爬蟲討論版
vivianoo
觀看數:7
回答數:2
收藏數:0
request.get
request.post

問題:

為什麼使用request.get和request.post,得到的output會不同?

code:

#使用request.get

odata_get = requests.get('http://odata.wra.gov.tw/v4/RealtimeWaterLevel')

json.loads(odata_get.text)

>>output: 

{'@odata.context': 'http://odata.wra.gov.tw/v4/$metadata#RealtimeWaterLevel',
'@odata.count': 0,
'value': []}


#使用request.post

odata_post = requests.post('http://odata.wra.gov.tw/v4/RealtimeWaterLevel')

json.loads(odata_post.text)

>>output:

{'error': {'code': '',
 'message': "No HTTP resource was found that matches the request URI '
http://wrisp2:88/odata/dataset/RealtimeWaterLevel'."}}

回答列表

  • 2019/11/29 上午 03:11
    K.F
    贊同數:1
    不贊同數:0
    留言數:0

    同學您好

    get跟post是兩種不同的請求

    你可以印出

    print(odata_get.status_code) #200

    print(odata_post.status_code)  #404

    200代表請求正常

    404代表找不到網頁

    再簡單一點說就是那個網頁不支援post的請求

  • 2019/11/29 上午 09:37
    張維元 (WeiYuan)
    贊同數:2
    不贊同數:0
    留言數:0

    嗨,在這幾天的講義有提到 HTTP 是一種網路傳輸的協定,可以分為 Request  跟 Response。Request 有 GET 和 POST 兩種方法,主要差異在於傳資料的差別。


    具體來說的運作方式是這樣,Server 上會開放多個不同的端點(endpoint),例如:


    * GET /users => 回傳所有使用者的資料

    * GET /users/1 => 回傳一號使用者的資料

    * POST /users => 新增使用者的資料


    那此時,如果對 Server 發出一個 GET /users  請求,Server 就會回傳所有使用者的資料。


    在你的問題中的 request.get 和 request.post ,其實就是模擬發送 GET 和 POST 的請求,至於分別會回傳什麼結果則是由對方所決定。