Quản Lý HTTP Request Header trong Golang
Package http trong Golang cung cấp các phương thức giúp developer có thể dễ dàng thực hiện các tác vụ sử dụng giao thức HTTP. Trong bài viết này chúng ta sẽ tìm hiểu cách quản lý giá trị của các trường trong header của HTTP request. Gán Giá Trị Cho Một Trường Header Để gán giá trị cho một ...
Package http trong Golang cung cấp các phương thức giúp developer có thể dễ dàng thực hiện các tác vụ sử dụng giao thức HTTP. Trong bài viết này chúng ta sẽ tìm hiểu cách quản lý giá trị của các trường trong header của HTTP request.
Gán Giá Trị Cho Một Trường Header
Để gán giá trị cho một trường với tên cho trước trong request header chúng ta sử dụng method .Set() của kiểu http.Header trong Golang. Cú pháp như sau:
func (h Header) Set(key, value string)
Trong đó key là tên trường header và value là giá trị chúng ta sẽ gán cho trường này. Cả key và value đều có kiểu dữ liệu là string.
Ví dụ:
req, err := http.NewRequest("GET", "https://www.codehub.vn", nil) if err != nil { // code xử lý lỗi panic(err) } req.Header.Set("Cache-Control", "no-cache")
Trong đoạn code trên chúng ta sử dụng method .Set() để gán giá trị cho trường Cache-Control của header với giá trị là no-cached.
Khi sử dụng method .Set() nếu trường header được thêm vào có tên trùng với một trường có sẵn trước đó thì trường có sẵn này sẽ được cập nhật với giá trị mới.
Thêm Trường Header
Để thêm giá trị cho một trường trong header chúng ta sử dụng method .Add() của kiểu http.Header trong Golang. Cú pháp như sau:
func (h Header) Add(key, value string)
Trong đó key là tên trường header và value là giá trị chúng ta sẽ gán cho trường này. Cả key và value đều có kiểu dữ liệu là string.
Ví dụ:
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
Khi sử dụng method .Add() các trường header có sẵn trước đó và có tên trùng với tên của trường header đang được thêm sẽ không bị ảnh hưởng. Trường header mới sẽ được thêm vào và tồn tại song song với trường header trước đó mà có tên trùng với nó. Điều này khác với .Set().
Lấy Ra Giá Trị Của Trường Trong Header
Để lấy ra giá trị của một trường với tên cho trước trong header chúng ta sử dụng method .Get() của kiểu http.Header trong Golang. Cú pháp như sau:
func (h Header) Get(key string) string
Trong đó key là tên trường header mà chúng ta muốn lấy ra giá trị. Giá trị trả về của method .Get() có kiểu dữ liệu là string.
Ví dụ:
req.Header.Get("Content-Type")
Xoá Một Trường trong Header
Để xoá một trường với tên cho trước trong header chúng ta sử dụng method .Del() của kiểu http.Header trong Golang. Cú pháp như sau:
func (h Header) Del(key string)
Ví dụ:
req.Header.Del("Content-Type")
Kết Luận
Tới đây chúng ta đã tìm hiểu về cách quản lý HTTP request header trong Golang. Ở các bài học tiếp theo chúng ta sẽ tìm hiểu cách gửi một request với các HTTP method khác nhau tới web server.