07/09/2018, 11:15

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.

Quản Lý HTTP Request Header trong Golang

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.

0