gonkey icon indicating copy to clipboard operation
gonkey copied to clipboard

Изменение подхода работы с ContentType и поддержка application/x-www-form-urlencoded

Open keyclaim opened this issue 2 years ago • 0 comments

В настоящий момент если мы используем метод POST И если Content-Type != multipart/form-dataa Gonkey автоматически устанавливает Content-Type: application/json И будет парсить соответствующим образом request

Необходимо добавить обработку ContentType: application/x-www-form-urlencoded

В лоб решается как еще одна ифка

func newRequest(host string, test models.TestInterface) (req *http.Request, err error) {

	if test.GetForm() != nil {
		req, err = newMultipartRequest(host, test)
		if err != nil {
			return nil, err
		}
	} else if test.ContentType() == "application/x-www-form-urlencoded" {

И если она срабатывает то парсим request как query params, err := url.ParseQuery(test.GetRequest())

Мне не очень нравится, что мы определяем как строить запрос не опираясь изначально на Content-Type.

Предлагаю смотреть на test.ContentType() и исходя из значения выбирать логику. Тогда в случае multipart/form-data уже внутри проверять test.GetForm().

Также в дальнейшем сможем свободно добавлять другие типы.

keyclaim avatar Aug 14 '23 15:08 keyclaim