C#调用Power BI REST API报错:Authorization标头不支持多值
错误信息
Cannot add value because header 'Authorization' does not support multiple values.
复现代码
public static async Task createNewWorkspace(string workspaceName) { bearer = ""; workspaceName = "TESTING"; //Create Workspace var url = "https://api.powerbi.com/v1.0/myorg/groups?workspaceV2=True"; var content = new StringContent("{\"name\": \"" + workspaceName + "\"}", Encoding.UTF8, "application/json"); if (client.DefaultRequestHeaders.Contains("Authorization")) { client.DefaultRequestHeaders.Remove("Authorization"); } client.DefaultRequestHeaders.Add("Authorization", "Bearer " + bearer); var response = await client.PostAsync(url, content); }
执行var response = await client.PostAsync(url, content);行时触发上述错误。
已尝试的排查方法
- 添加判断并移除Authorization标头(无效)
- 尝试多种授权写法:
// 写法1 client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Bearer" + bearer); // 写法2 client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", bearer); // 写法3 client.DefaultRequestHeaders.Remove("Authorization"); client.DefaultRequestHeaders.Add("Authorization", "Bearer " + bearer);
- 参考过相关技术论坛解决方案
补充信息
- 本人是C#新手,这是第一个项目
- 直接调用
createNewWorkspace方法可正常运行,但从遍历SQL查询结果的方法中调用时会触发错误 - 使用的
HttpClient为静态只读实例:
static readonly HttpClient client = new HttpClient();
- 更新代码后,工作区能创建但仍报FORBIDDEN错误,且总是先创建成功再触发错误
内容的提问来源于stack exchange,提问作者NutellaKing
相关产品推荐
相关产品推荐

