So Sánh Cách Gửi Yêu Cầu HTTP Sử Dụng http.client, urllib.request và Thư Viện requests Trong Python

Gửi Yêu Cầu GET Không Tham Số

GET http://httpbin.org/get

Python3 sử dụng http.client

import http.client as hconn

# 1. Thiết lập kết nối HTTP
client = hconn.HTTPConnection("httpbin.org")
# 2. Gửi yêu cầu GET với đường dẫn cụ thể
client.request("GET", '/get')
# 3. Nhận phản hồi
response = client.getresponse()
# 4. Xử lý dữ liệu phản hồi bằng cách giải mã
print(response.read().decode('utf-8')) # Giải mã thủ công

Python3 sử dụng urllib.request

from urllib import request as ureq

response = ureq.urlopen("http://httpbin.org/get")
print(response.read().decode('utf-8'))  # Giải mã thủ công

Python3 sử dụng thư viện requests

import requests as reqs

response = reqs.get("http://httpbin.org/get")
print(response.text) # Tự động giải mã theo UTF-8

Gửi Yêu Cầu GET Với Tham Số Tiếng Việt

GET https://httpbin.org/get?ten=Nguyễn&tuoi=25

Python3 sử dụng http.client

import http.client as hconn
from urllib.parse import quote

client = hconn.HTTPSConnection("httpbin.org")
url = quote("/get?ten=Nguyễn&tuoi=25", safe=':/?=&') # URL encode
client.request("GET", url)
response = client.getresponse()
print(response.read().decode('utf-8')) # Giải mã thủ công

Python3 sử dụng urllib.request

from urllib import parse as uparse, request as ureq

url = uparse.quote("https://httpbin.org/get?ten=Nguyễn&tuoi=25", safe=':/?=&') # URL encode
response = ureq.urlopen(url)
print(response.read().decode('utf-8'))  # Giải mã thủ công

Python3 sử dụng thư viện requests

import requests as reqs

response = reqs.get("https://httpbin.org/get?ten=Nguyễn&tuoi=25") # Tự động URL encode
print(response.text) # Tự động giải mã theo UTF-8

Gửi Yêu Cầu POST Theo Định Dạng x-www-form-urlencoded

POST http://httpbin.org/post Dữ Liệu: ten=Nguyễn&tuoi=25

Python3 sử dụng http.client

import http.client as hconn
from urllib.parse import urlencode

client = hconn.HTTPConnection("httpbin.org")
data = urlencode({"ten":"Nguyễn", "tuoi": 25}).encode('utf-8') # URL và UTF-8 encode
client.request("POST", '/post', data)
response = client.getresponse()
print(response.read().decode('utf-8'))

Python3 sử dụng urllib.request

from urllib import parse as uparse, request as ureq

data = uparse.urlencode({"ten":"Nguyễn", "tuoi": 25}).encode('utf-8') # URL và UTF-8 encode
request = ureq.Request("http://httpbin.org/post", data=data)
response = ureq.urlopen(request)
print(response.read().decode('utf-8')) 

Python3 sử dụng thư viện requests

import requests as reqs

data = {"ten":"Nguyễn", "tuoi": 25}
response = reqs.post("http://httpbin.org/post", data=data) # Tự động encode
print(response.text)

Gửi Yêu Cầu POST JSON

POST http://httpbin.org/post Dữ Liệu: {"ten": "Nguyễn","tuoi": 25}

Python3 sử dụng http.client

import http.client as hconn
from urllib.parse import urlencode
import json

client = hconn.HTTPConnection("httpbin.org")
data = json.dumps({"ten":"Nguyễn", "tuoi": 25}).encode('utf-8') # Hoặc dùng json.dumps
headers = {"Content-Type": "application/json"}
client.request("POST", '/post', data, headers)
response = client.getresponse()
print(response.read().decode('utf-8'))

Python3 sử dụng urllib.request

from urllib import request as ureq
import json

data = json.dumps({"ten":"Nguyễn", "tuoi": 25}).encode('utf-8') # Hoặc dùng json.dumps
headers = {"Content-Type": "application/json"}
request = ureq.Request("http://httpbin.org/post", data=data, headers=headers)
response = ureq.urlopen(request)
print(response.read().decode('utf-8')) 

Python3 sử dụng thư viện requests

import requests as reqs

data = {"ten":"Nguyễn", "tuoi": 25}
response = reqs.post("http://httpbin.org/post", json=data)
print(response.json())  # Chuyển đổi thành định dạng từ điển

Thẻ: http.client urllib.request requests python

Đăng vào ngày 9 tháng 7 lúc 09:00