В дополнение к ответу Haldo,
В своем коде вы добавляете заголовок Acs-Api-Key
как и Заголовок авторизации , то есть он выглядит как Authorization: Acs-Api-Key (key)
, а не Acs-Api-Key: (key)
, что у вас есть в PostMan.
Вместо добавления его в качестве заголовка авторизации, просто добавьте его в качестве обычного заголовка.
client.DefaultRequestHeaders.Add("Acs-Api-Key","(key)");
Также может возникнуть проблема, что вы не оборачиваете свой контент в объект «источник», как в PostMan. Есть несколько способов сделать это
Первый - просто обернуть его в строковый формат:
stringPayload = $"\"source\":{{{stringPayload}}}"
Или вы можете сделать это до сериализации, создав вместо этого собственный объект. иметь словарь
var content = new PayloadObject(new Source("upload", "testdoc"));
var stringPayload = JsonConvert.SerializeObject(content);
// Send the request
class PayloadObject{
Source source {get; set;}
PayloadObject(Source source){
this.source = source;
}
}
class Source{
string type {get; set;}
string displayName {get; set;}
Source(string type, string displayName){
this.type = type;
this.displayName = displayName;
}
}