Есть ли конкретный тип данных, который я могу использовать для параметров x-www-form-urlencoded в c #? - PullRequest
0 голосов
/ 20 сентября 2019

Я работаю над Web-API и получаю POST запрос с телом с Content-type как x-www-form-urlencoded

. С этим я могу обработать запрос, но словарьпо какой-то причине всегда пуст.Это потому, что я использую неправильный тип данных?Или есть что-то еще, что не так?

    static List<string> strings = new List<string>();
    [HttpPost]
    public void Post(Dictionary<string,string> value) //why is the dictionary empty?...
    {
        foreach (KeyValuePair<string,string> kvp in value)//keyValuePair
        {
            strings.Add("Key = " + kvp.Key + ", Value = " + kvp.Value);
        }
    }

Я не знаю, может ли это помочь, но у меня есть это в моем файле WebApiconfig.cs, поэтому он возвращается в application/json

config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

Я также хочу извиниться, если этот вопрос не так хорош или ему не хватает определенной информации.Я постараюсь добавить все, что вам нужно.Просто дай слово.Спасибо!

РЕДАКТИРОВАТЬ: отправить запрос на мой API.

HEADER

host: localhost:60509
Accept: application/json,*/*
Accept-Encoding: gzip,deflate
Content-Type: application/x-www-form-urlencoded
User-Agent: Slackbot 1.0 (+https://api.slack.com/robots)
X-Slack-Request-Timestamp: 1568976729
X-Slack-Signature: v0=3fb0dda35d6925cabc393dabf3525ec998a755837316e5019e53a86c900f6651
Content-Length: 381
Connection: keep-alive

единственное, что я могу изменить, это хост.

...