如何将application / x-www-form-urlencoded转换为JSON?

时间:2019-07-26 15:37:33

标签: c# json http

我使用application/x-www-form-urlencoded发出了内容类型为Httpclient.PostRequest UTF-8的http发布请求。我需要将application/x-www-form-urlencoded请求结果转换为json字符串。如何在C#中application/x-www-form-urlencoded到json?

我做了下一个帖子请求。

HttpResponseMessage response;
using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://sv.ki.court.gov.ua/new.php"))
            {
                request.Headers.TryAddWithoutValidation("Connection", "keep-alive");
                request.Headers.TryAddWithoutValidation("Accept", "application/json, text/javascript, */*; q=0.01");
                request.Headers.TryAddWithoutValidation("Accept-Encoding", "gzip, deflate, br");
                request.Headers.TryAddWithoutValidation("Accept-Language", "en-US,en;q=0.9");
                request.Headers.TryAddWithoutValidation("Referer", "https://sv.ki.court.gov.ua/sud2608/gromadyanam/csz");
                request.Headers.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36");
                request.Headers.TryAddWithoutValidation("Origin", "https://sv.ki.court.gov.ua");
                request.Headers.TryAddWithoutValidation("X-Requested-With", "XMLHttpRequest");
                request.Headers.TryAddWithoutValidation("Cookie", "_ga=GA1.3.1754947237.1562858299; PHPSESSID=1nosm5dhdljsv8tpsu97bl8dn5; cookiesession1=257F9822DPOYFGLLUDVTJCMDYYR98AB6; _gid=GA1.3.1599643655.1563891940; _gat=1");

                request.Content = new StringContent("q_court_id=2608", Encoding.UTF8, "application/x-www-form-urlencoded");

                response = await _client.SendAsync(request);
            }

            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var json = await response.Content.ReadAsStringAsync();

我使用StringContent作为application/x-www-form-urlencoded类型。 application/json不起作用。发布请求返回结果字符串“ \u001f<....”。我需要将响应结果application/x-www-form-urlencoded转换为application/json

1 个答案:

答案 0 :(得分:0)

这应该给您一些想法。在下面PostAsync内部的示例中,您传入一个StringContent的新实例,您在其中设置了内容的类型,即本例中为Json

public static async Task MainAsync()
{
    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri("http://localhost:1234");
        var content = new FormUrlEncodedContent(new[]
        {
            new KeyValuePair<string, string>("", "Joe Bloggs")
        });
        var result = await client.PostAsync("/api/Customer/exists", new StringContent(content.ToString(), Encoding.UTF8, "application/json"));
        string resultContent = await result.Content.ReadAsStringAsync();
        Console.WriteLine(resultContent);
    }
}
相关问题