При анализе значения в долговременной функции azure обнаружен неожиданный символ - PullRequest
0 голосов
/ 21 апреля 2020

У меня проблема с функцией CallActivityAsync, я пытаюсь передать значение (https://www.web.eu/a?b=0123456789) в ActivityTriggerGetWebContent) и все равно получаю ошибку:

При анализе значения обнаружен неожиданный символ: {. Путь '', строка 1, позиция 1 .

Я не знаю, что происходит. Я посылаю через Почтальон "0123456789" значение, а следующее значение объединяется с URL. Переданное значение является простой строкой. Может кто-нибудь сказать мне, что происходит? В чем проблема?

This exception was originally thrown at this call stack:
    Newtonsoft.Json.JsonTextReader.ReadStringValue(Newtonsoft.Json.ReadType)
    Newtonsoft.Json.JsonTextReader.ReadAsString()
    Newtonsoft.Json.JsonReader.ReadForType(Newtonsoft.Json.Serialization.JsonContract, bool)
    Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(Newtonsoft.Json.JsonReader, System.Type, bool)
    Newtonsoft.Json.JsonSerializer.DeserializeInternal(Newtonsoft.Json.JsonReader, System.Type)
    Newtonsoft.Json.JsonSerializer.Deserialize(Newtonsoft.Json.JsonReader, System.Type)
    DurableTask.Core.Serializing.JsonDataConverter.Deserialize(string, System.Type) in JsonDataConverter.cs
    DurableTask.Core.TaskOrchestrationContext.ScheduleTaskInternal(string, string, string, System.Type, object[]) in TaskOrchestrationContext.cs
    System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
    System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
    ...
    [Call Stack Truncated]
[FunctionName(nameof(DurableHttpStart))]
    public async Task<HttpResponseMessage> Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "{functionName}")]
        HttpRequestMessage requestMessage,
        [DurableClient] IDurableClient durableClient,
        string functionName,
        ILogger logger)
    {
        var input = await requestMessage.Content.ReadAsAsync<object>();

        var instanceId = await durableClient.StartNewAsync(functionName, input);

        logger.LogInformation($"Started orchestration with ID = '{instanceId}'.");

        return durableClient.CreateCheckStatusResponse(requestMessage, instanceId);
    }

[FunctionName("Parse")]
    public async Task<IActionResult> Run([OrchestrationTrigger] IDurableOrchestrationContext context, ILogger log)
    {
        try
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            var value = context.GetInput<string>();

            var result = new Result();

            var link = await context.CallActivityAsync<string>(nameof(GetLink), value);
            result.Url = link;

            var webContent = await context.CallActivityAsync<string>(nameof(GetWebContent), link);

            var parsedContent = await context.CallActivityAsync<string>(nameof(RunParser), webContent);
            result.Data = parsedContent;

            return new OkObjectResult(result);
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            throw;
        }
    }

[FunctionName("GetLink")]
    public static async Task<string> Run(
        [ActivityTrigger] string value,
        ILogger log)
    {
        var url = LinkHelper.CreateLink(value);

        return url;
    }


[FunctionName("GetWebContent")]
    public static async Task<IActionResult> Run(
        [ActivityTrigger] string url,
        ILogger log)
    {
        log.LogInformation("C# 'GetWebContent' HTTP trigger function processed a request.");

        log.LogInformation($"Url from request body: {url}");

        var content = await HttpHelper.GetWebPageSource(url);

        return content != null ? (IActionResult) new OkObjectResult(content) : new BadRequestObjectResult($"Provided url: {url} is bad. Try again later.");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...