lelvisl
@lelvisl

Как использовать NewRequest в golang?

Всем привет!

Есть такой код

package main

import (
	"fmt"
	//	"net"
	"net/http"
)

func main() {
	client := &http.Client{}
	fmt.Println("Hello, playground")
	req, err := http.NewRequest("POST", "http://example.com", nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("If-None-Match", `W/"wyzzy"`)
	req.Form.Add("username", "a")
	req.Form.Add("password", "b")
	resp, err := client.Do(req)
	//k:=resp.Body
	fmt.Printf("%+v\n", resp)
}

req.Header.Add("If-None-Match", `W/"wyzzy"`) - работает
req.Form.Add("password", "b") - не работает - в панику. типа у меня вообще нет мапы, в которую я пишу.

Я вот не понимаю как так. Header и url.Values однофгиственны. полностью. И методы те же.
  • Вопрос задан
  • 7644 просмотра
Пригласить эксперта
Ответы на вопрос 1
@kshvakov
buffer := new(bytes.Buffer)
params := url.Values{}
params.Set("username", "a")
params.Set("password", "b")
buffer.WriteString(params.Encode())
req, _ := http.NewRequest("POST", "", buffer)
req.Header.Set("content-type", "application/x-www-form-urlencoded")


req.Form - это "входящий" реквест и после request .ParseForm
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы