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:11K.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 的請求,至於分別會回傳什麼結果則是由對方所決定。