http.newRequest не отправляет данные поста

У меня есть следующий код для отправки почтовых данных на сервер, но сервер не обнаруживает никаких почтовых данных по запросу. Код клиента:

cookieJar, _ := cookiejar.New(nil)
        client := &http.Client{
            Jar: cookieJar,
        }
        postUrl := os.Args[1]
        username := os.Args[2]
        password := os.Args[3]
        data := url.Values{}
        data.Set("username", username)
        data.Add("password", password)
        data.Add("remember", "false")

        r, _ := http.NewRequest("POST", postUrl, bytes.NewBufferString(data.Encode()))
        resp, _ := client.Do(r)
        defer resp.Body.Close()
        body, err := ioutil.ReadAll(resp.Body)
        fmt.Printf("%s\n", string(body))

Код сервера:

if(isset($_POST['username'], $_POST['password'], $_POST['remember'])){
    echo $username = md5(($_POST['username']));
    echo $password_original = $_POST['password'];
    echo $password = md5(($_POST['password']));
    echo $remember = $_POST['remember'];
}

1 ответ

Решение

Вы публикуете данные как форму в теле запроса без типа контента. Вам либо нужно поместить значения в запросе запроса:

r.URL.RawQuery = data.Encode()

или измените Content-Type на "application/x-www-form-urlencoded":

r.Header.Add("Content-Type", "application/x-www-form-urlencoded")
Другие вопросы по тегам