ฉันกำลังทำ http GET ง่าย ๆ ใน Go:
client := &http.Client{}
req, _ := http.NewRequest("GET", url, nil)
res, _ := client.Do(req)
แต่ฉันไม่พบวิธีปรับแต่งส่วนหัวคำขอในเอกสารขอบคุณ
ฉันกำลังทำ http GET ง่าย ๆ ใน Go:
client := &http.Client{}
req, _ := http.NewRequest("GET", url, nil)
res, _ := client.Do(req)
แต่ฉันไม่พบวิธีปรับแต่งส่วนหัวคำขอในเอกสารขอบคุณ
คำตอบ:
Header
ด้านการขอเป็นแบบสาธารณะ คุณสามารถทำสิ่งนี้:
req.Header.Set("name", "value")
โปรดทราบว่าไม่สามารถตั้งค่าส่วนหัวใน "โฮสต์" http.Request ผ่านSet
วิธีการ
req.Header.Set("Host", "domain.tld")
แต่สามารถตั้งค่าได้โดยตรง:
req.Host = "domain.tld"
:
req, err := http.NewRequest("GET", "http://10.0.0.1/", nil)
if err != nil {
...
}
req.Host = "domain.tld"
client := &http.Client{}
resp, err := client.Do(req)
สุทธิโก / http แพคเกจมีหลายฟังก์ชั่นว่าการจัดการกับส่วนหัว ในหมู่พวกเขาเพิ่ม , เดล , รับและตั้งค่าวิธีการ วิธีใช้ Set คือ:
func yourHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("header_name", "header_value")
}
r *http.Request
และส่งคืนสิ่งที่ w http.ResponseWriter
มา ดังนั้นอาจเป็นเพราะคุณกลับมาที่ส่วนหัวคุณต้องเขียนพวกเขาในนักเขียนตอบ และw
เป็นนักเขียนตอบโต้ สิ่งนี้ดูมีเหตุผลสำหรับคุณหรือไม่