วิธีการตั้งค่าส่วนหัวใน http ได้รับการร้องขอ?


152

ฉันกำลังทำ http GET ง่าย ๆ ใน Go:

client := &http.Client{}
req, _ := http.NewRequest("GET", url, nil)
res, _ := client.Do(req)

แต่ฉันไม่พบวิธีปรับแต่งส่วนหัวคำขอในเอกสารขอบคุณ

คำตอบ:



38

โปรดทราบว่าไม่สามารถตั้งค่าส่วนหัวใน "โฮสต์" 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)

2

สุทธิโก / http แพคเกจมีหลายฟังก์ชั่นว่าการจัดการกับส่วนหัว ในหมู่พวกเขาเพิ่ม , เดล , รับและตั้งค่าวิธีการ วิธีใช้ Set คือ:

func yourHandler(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("header_name", "header_value")
}

7
ประเภทใด w
Eswar Yaganti

@EswarYaganti คุณส่งหัวข้ออย่างไร คุณได้รับr *http.Requestและส่งคืนสิ่งที่ w http.ResponseWriterมา ดังนั้นอาจเป็นเพราะคุณกลับมาที่ส่วนหัวคุณต้องเขียนพวกเขาในนักเขียนตอบ และwเป็นนักเขียนตอบโต้ สิ่งนี้ดูมีเหตุผลสำหรับคุณหรือไม่
Salvador Dali

3
โปสเตอร์ต้นฉบับกล่าวว่าเขาต้องการที่จะ "ปรับแต่งส่วนหัวคำขอ " ตัวอย่างของคุณปรับแต่งส่วนหัวการตอบกลับ
Martin Del Vecchio
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.