为什么在为 Azure Data Lake Gen2 调用放置文件 api 时出现 header 错误?

Why am I getting a missing header error when calling the put file api for azure data lake gen2?

我正在尝试直接调用 gen2 rest 端点并不断收到错误消息,指出我缺少必需的 header(MissingRequiredHeader 消息未指定此请求所必需的 HTTP header。我没看到 header 遗漏了什么。我正在使用以下代码发送请求。

var client = new HttpClient();

client.BaseAddress = new Uri($"https://{account}.dfs.core.windows.net/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("api_version", "2018-11-09");
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _authResult.AccessToken);

string azPath = $"{baseRawSystemPath}/{path.Replace("\", "/")}";

byte[] bytes = Encoding.UTF8.GetBytes(content);
HttpContent body = new StringContent(content, Encoding.UTF8, "application/json");

HttpResponseMessage response = await client.PutAsync(azPath, body);
if (response.IsSuccessStatusCode)
{
    var responseListingJson = await response.Content.ReadAsStringAsync();
    return;
}
else
{
    var error = await response.Content.ReadAsStringAsync();
    return;
}

只是为了回答我自己的问题...我缺少 resource=file 查询字符串参数。这允许请求成功并创建文件。