Ошибка возникает в двух строках ниже в вашем коде:
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);
Так как вы установили text/plain
в своем коде. Поэтому, когда вы делаете www.SendWebRequest()
, он отправляет данные формы, но не данные формата json. Таким образом, он покажет сообщение об ошибке.
Ниже я приведу код для вашей справки:
public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
var arr = req.Form.Keys;
foreach (var key in arr) {
log.LogInformation(key);
log.LogInformation(req.Form[key]);
}
return (ActionResult)new OkObjectResult("success");
}
Вы можете получить ключ и значение данных формы в приведенном выше коде, а затем составьте их в формате json и затем выполните DeserializeObject
. Или, если вы хотите использовать данные для создания объекта, вы можете даже не делать DeserializeObject
и просто устанавливать значение в свой объект напрямую.
Кстати, вы также можете попытаться изменить text/plain
до application/json
в вашем коде new MultipartFormDataSection("name", "SampleName", "text/plain")
. Но, поскольку я мало что знаю о MultipartFormDataSection
, поэтому я не уверен, что это решение может работать.
Надеюсь, оно поможет.