Отправка объекта через http.Post () не работает - PullRequest
0 голосов
/ 24 сентября 2019

Итак, я пытаюсь отправить объект через аргумент параметров в http.Post () (см. https://wiki.garrysmod.com/page/http/Post), но сервер не получает ничего в теле запроса.

Мне также нужно, чтобы это работало с использованием application / json вместо application / x-www-form-urlencoded для Header Content-Type. Я думаю, что именно в этом и заключается проблема, так как мне кажется, что он обрабатывает запрос какон использовал application / x-www-form-urlencoded, даже когда я указываю иначе.

А также, извините, если я звучу смущенно - вероятно, я.


    local data = { 
        fields = { 
            ['name']= { ['stringValue'] ="Bob"}, 
            ['age'] = { ['stringValue'] ="19"} 
        } 
    }

    local header = {
        ['Content-Type']= 'application/json'
    }

    http.Post(
        "https://en00ot5pylxlbg.x.pipedream.net",
        (data), 
        function( result ) 
            print("IT WORKED " .. result)
        end, 
        function( fail ) 
            print("IT DIDNT WORK " .. fail)
        end, 
        header
    )

1 Ответ

0 голосов
/ 24 сентября 2019

Неважно, я решил это.

Если вы хотите опубликовать JSON, сделайте что-то вроде этого:


HTTP({
        url= YOUR_URL_ENDPOINT, 
        method= "POST", 
        headers= { 
            ['Content-Type']= 'application/json'
        },
        success= function( code, body, headers ) 
            print("IT WORKED " .. body)
        end, 
        failed = function( err ) 
            print("IT DIDNT WORK " .. err)
        end,
        body=util.TableToJSON(data)
})

...