【问题标题】:Adding Http headers from string in C#在 C# 中从字符串添加 Http 标头
【发布时间】:2023-04-03 14:16:01
【问题描述】:

我有一些 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

【问题讨论】:

  • 试试web.Headers.AddRange(UserHeaders.Split("\n"));
  • 尝试将您的UserHeaders 拆分为一个数组,然后循环遍历该数组以将项目推送到Headers
  • 我认为使用循环作为最后的手段。我正在寻找另一种解决方案:)

标签: c# http-headers webclient


【解决方案1】:

除了遍历所有元素并单独添加它们之外,我没有找到任何其他解决方案。

我的简单方法:

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);
    }

【讨论】:

    猜你喜欢
    • 2016-10-05
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    • 2020-12-18
    • 1970-01-01
    相关资源
    最近更新 更多