Не удается запустить функцию Azure HttpTrigger из другой функции Azure - PullRequest
0 голосов
/ 02 июля 2018

Вот код функции. Json

{
  "bindings": [
    {
      "authLevel": "function",
      "name": "query",
      "type": "httpTrigger",
      "direction": "in",
      "methods": [
        "get",
        "post"
      ]

Вот мой файл run.csx:

public class Query{
    public double AdvanceDays{get;set;}
}
public static async Task<HttpResponseMessage> Run(Query query,entity Entity,HttpRequestMessage req, TraceWriter log, IEnumerable<dynamic> inputDocument)
{

Теперь мне нужно вызвать эту функцию, активированную по протоколу Http, из другой функции. Я делаю:

var url = "https://azurefunction...";
var content2 = new StringContent(string.Format("{{\"AdvanceDays\":7}}"));
var response = await client.PostAsync(url,content2);

Но я получаю следующую ошибку: No MediaTypeFormatter is available to read an object of type 'Query' from content with media type 'text/plain'.

Как мне это исправить? Пожалуйста, помогите !!!

1 Ответ

0 голосов
/ 02 июля 2018

Похоже, проблема в том, что отправляемый вами запрос не указывает тип контента, и по умолчанию он равен text/plain. Поскольку нет Content-type header, функция не знает, какой тип контента вы отправляете. Вы должны добавить Content-Type header со значением application/json.

Поле заголовка запроса Accept может использоваться для указания определенных типов мультимедиа, которые приемлемы для ответа.

Поле заголовка объекта Content-Type указывает тип носителя тела объекта, отправляемого получателю, или, в случае метода HEAD, тип носителя, который был бы отправлен, имел бы запрос был ПОЛУЧЕН.

Источник: Заголовок подтверждения против заголовка типа содержимого

...