При публикации в моем API с использованием CURL я использую следующий синтаксис:
curl -H "Content-Type:application/json" -X POST -d '{"domainName":"fabrikam.onmicrosoft.com","apiKey":"980709a87df09a78dsf90a8s7f"}' http://localhost:7071/api/getnodedata
Мой веб-API получает запрос через:
dynamic data = await req.Content.ReadAsAsync<object>();
NodeModel nodeData = Newtonsoft.Json.JsonConvert.DeserializeObject<NodeModel>(data);
Мой класс прост:
public class NodeModel : TableEntity
{
public string DomainName { get; set; }
public string ApiKey { get; set; }
}
public static NodeModel(string DomainName, string ApiKey)
{
this.PartitionKey = DomainName;
this.RowKey = ApiKey;
}
Проверка data
дает мне '{domainName:fabrikam.onmicrosoft.com,apiKey:980709a87df09a78dsf90a8s7f}'
, что выглядит нормально, за исключением пропущенных двойных кавычек вокруг каждой пары ключ / значение.CURL удаляет двойные кавычки перед отправкой (как проверено с помощью трассировки Fiddler).
В моем локальном приложении func.exe
получено следующее исключение:
mscorlib: Exceptionпри выполнении функции: GetNodeData.Newtonsoft.Json: Ошибка при разборе логического значения.Путь 'имя_домена'
Я пробовал:
- Пробелы между ключом / значениями
- Одинарные кавычки, заключающие ключи (ключи)
- Одинарные кавычки, заключающие значение (я)
- Исследование сайта Newtonsoft на предмет правильного синтаксиса
- Исследование этого сайта для других примеров (которые, похоже, не отличаются от того, что яделать).
Есть предложения или инструкции по использованию другого инструмента?У меня тоже есть Fiddler, но я не использовал его для POST
передачи данных в службу.