У меня проблема с функцией CallActivityAsync
, я пытаюсь передать значение (https://www.web.eu/a?b=0123456789) в ActivityTrigger
(в GetWebContent
) и все равно получаю ошибку:
При анализе значения обнаружен неожиданный символ: {. Путь '', строка 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.");
}