Ошибка чтения JToken из JsonReader в ASP. NET CORE 3.1 WebApi - PullRequest
0 голосов
/ 07 мая 2020

Я использую Cloudinary для загрузки изображений в свое приложение ASP. NET CORE 3.1, и когда я вызываю _cloudinary.Upload (uploadParams), он выдает следующее исключение:

    System.Exception: Failed to deserialize response with status code: Redirect  --->
             Newtonsoft.Json.JsonReaderException: Error reading JToken from JsonReader. Path '', line 0, position 0.
at Newtonsoft.Json.Linq.JToken.ReadFrom(JsonReader reader, JsonLoadSettings settings) 
        at Newtonsoft.Json.Linq.JToken
    .Parse(String json, JsonLoadSettings settings) at Newtonsoft.Json.Linq.JToken.Parse(String json)
     
    at CloudinaryDotNet.ApiShared.CreateResultFromString[T](String s, HttpStatusCode statusCode)
    --- End of inner exception stack trace

Ниже приведен код моего контроллера:

    [HttpPost]
public async Task<IActionResult> AddPhotoForUser(int userId, [FromForm]PhotoForCreationDto photoForCreationDto)
{
    if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
    {
        return Unauthorized();
    }
var userFromRepo = await _repo.GetUser(userId);

var file = photoForCreationDto.File;
var uploadResult = new ImageUploadResult();

if (file.Length > 0)
{
    using(var stream = file.OpenReadStream())
    {
        var uploadParams = new ImageUploadParams()
        {
            File = new FileDescription(file.Name, stream),
            Transformation = new Transformation().Width(500).Height(500).Crop("fill").Gravity("face")
        };

        uploadResult = _cloudinary.Upload(uploadParams);
    }
}

photoForCreationDto.Url = uploadResult.Uri.ToString();
photoForCreationDto.PublicId = uploadResult.PublicId;

var photo = _mapper.Map<Photo>(photoForCreationDto);

if (!userFromRepo.Photos.Any(u => u.IsMain))
{
    photo.IsMain = true;
}

userFromRepo.Photos.Add(photo);

if (await _repo.SaveAll())
{
    var photoToReturn = _mapper.Map<PhotoForReturnDto>(photo);

    return CreatedAtRoute("GetPhoto", new { userId = userId, id = photo.Id }, photoToReturn);
}

return BadRequest("Could not add the photo");
}

1 Ответ

0 голосов
/ 28 мая 2020

У меня аналогичная проблема, но ошибка запрещена, возникает только тогда, когда я запускаю приложение из cli, в отладчике все идет нормально. https://github.com/cloudinary/CloudinaryDotNet/issues/223

...