在C#中从字符串添加Http头

时间:2016-03-10 13:12:25

标签: c# http-headers webclient

我有一些C#方法从用户指定的Uri获取JSON数据。用户还可以添加一些额外的标题 - 我的方法将它们作为字符串(由新行'\ n'分隔)。如果是单头,没有问题。但是,如果用户想要添加几个标题呢?我正在使用WebClient类。

方法:

using (WebClient web = new WebClient())
            {
                switch (Method.ToUpper())
                {
                    case "GET":
                        {
                            web.Headers.Add(UserHeaders);
                            result = web.DownloadString(UserUri);
                            break;
                        }
                }

如果标题如下所示,则没有问题:

Content-Type: application/json

但是如何添加一些标题 - 例如:

Content-Type: application/json
Accept-Language: en-US
Accept-Charset: utf-8

1 个答案:

答案 0 :(得分:0)

我没有找到任何其他解决方案而不是通过所有元素并将它们添加到其中。

我的简单方法:

public void AddCustomHeaders(WebClient web, string headers)
    {
        List<string> listOfHeaders = new List<string>();
        listOfHeaders = headers.Split('\n').ToList();

        foreach (var header in listOfHeaders)
            web.Headers.Add(header);
    }