C# Newtonsoft.Json.JsonReaderException:解析值h时遇到意外字符。路径'';,第0行,位置0
我正在尝试显示要上载的选定图像的URL。但是,当我运行程序时,它告诉我C# Newtonsoft.Json.JsonReaderException:解析值h时遇到意外字符。路径'';,第0行,位置0,c#,asp.net-mvc,asp.net-web-api,asp.net-core-webapi,blazor-webassembly,C#,Asp.net Mvc,Asp.net Web Api,Asp.net Core Webapi,Blazor Webassembly,我正在尝试显示要上载的选定图像的URL。但是,当我运行程序时,它告诉我Newtonsoft.Json.JsonReaderException:解析值h时遇到意外字符。路径“”,第0行,位置0。并且反序列化中的解析存在问题。然而,我认为反序列化并没有任何问题。我没有看到导致这一切的原因吗?web api为我上传的文件返回AbsoluteUri,我将其转换为字符串。。。因此它返回var absoluteUrl=blob.Uri.AbsoluteUri.ToString() private async
Newtonsoft.Json.JsonReaderException:解析值h时遇到意外字符。路径“”,第0行,位置0。
并且反序列化中的解析存在问题。然而,我认为反序列化并没有任何问题。我没有看到导致这一切的原因吗?web api为我上传的文件返回AbsoluteUri
,我将其转换为字符串。。。因此它返回var absoluteUrl=blob.Uri.AbsoluteUri.ToString()代码>
private async Task UploadFileSelected()
{
//创建内容
var content=新的MultipartFormDataContent();
content.Headers.ContentDisposition=新的ContentDispositionHeaderValue(“表单数据”);
添加(新的StreamContent(fileStream,Convert.ToInt32(fileStream.Length)),“file”,文件名);
字符串url=”https://localhost:5011";
var response=wait_httpClient.PostAsync($“{url}/api/fileupload”,content);
response.EnsureSuccessStatusCode();
var responseContent=await response.Content.ReadAsStringAsync();
var result=JsonConvert.DeserializeObject(responseContent);
message=“上传!!”;
fileurl=responseContent;
控制台。写入(“结果:+result”);
Console.WriteLine(“url:+fileurl”);
返回等待任务。FromResult(result);
}
终点:
[HttpPost]
public async Task<IActionResult> Upload()
{
try
{
var formCollection = await Request.ReadFormAsync();
var file = formCollection.Files.First();
if (file.Length > 0)
{
var container = new BlobContainerClient(_azureConnectionString, "container");
var createResponse = await container.CreateIfNotExistsAsync();
if (createResponse != null && createResponse.GetRawResponse().Status == 201)
await container.SetAccessPolicyAsync(PublicAccessType.Blob);
var blob = container.GetBlobClient(file.FileName);
await blob.DeleteIfExistsAsync(DeleteSnapshotsOption.IncludeSnapshots);
using (var fileStream = file.OpenReadStream())
{
await blob.UploadAsync(fileStream, new BlobHttpHeaders { ContentType = file.ContentType });
}
var absoluteUrl = blob.Uri.AbsoluteUri.ToString();
Console.WriteLine(absoluteUrl);
return Ok(absoluteUrl);
}
return BadRequest();
}
catch (Exception ex)
{
return StatusCode(500, $"Internal server error: {ex}");
}
}
[HttpPost]
公共异步任务上载()
{
尝试
{
var formCollection=wait Request.readformsync();
var file=formCollection.Files.First();
如果(file.Length>0)
{
var container=新的BlobContainerClient(_azureConnectionString,“容器”);
var createResponse=await container.CreateIfNotExistsAsync();
if(createResponse!=null&&createResponse.GetRawResponse().Status==201)
wait container.SetAccessPolicyAsync(PublicAccessType.Blob);
var blob=container.GetBlobClient(file.FileName);
等待blob.DeleteIfExistsAsync(DeleteSnapshotsOption.IncludeSnapshots);
使用(var fileStream=file.OpenReadStream())
{
等待blob.UploadAsync(fileStream,新BlobHttpHeader{ContentType=file.ContentType});
}
var absoluteUrl=blob.Uri.AbsoluteUri.ToString();
Console.WriteLine(绝对URL);
返回Ok(绝对URL);
}
返回请求();
}
捕获(例外情况除外)
{
返回状态码(500,$“内部服务器错误:{ex}”);
}
}
在/api/fileupload
上显示端点代码。您的响应不是JSON。@Andy请查看更新的帖子,我已经包含了端点代码。在控制器的顶部,上面写着[ApiController]
,将其更改为[ApiController,products(“application/JSON”)]
另外,更改var result=jsoninvert.DeserializeObject(responseContent)
tovar result=JsonConvert.DeserializeObject(responseContent)代码>这成功了!非常感谢。那么生成(“application/json”)
使控制器将其返回到json对象中?
[HttpPost]
public async Task<IActionResult> Upload()
{
try
{
var formCollection = await Request.ReadFormAsync();
var file = formCollection.Files.First();
if (file.Length > 0)
{
var container = new BlobContainerClient(_azureConnectionString, "container");
var createResponse = await container.CreateIfNotExistsAsync();
if (createResponse != null && createResponse.GetRawResponse().Status == 201)
await container.SetAccessPolicyAsync(PublicAccessType.Blob);
var blob = container.GetBlobClient(file.FileName);
await blob.DeleteIfExistsAsync(DeleteSnapshotsOption.IncludeSnapshots);
using (var fileStream = file.OpenReadStream())
{
await blob.UploadAsync(fileStream, new BlobHttpHeaders { ContentType = file.ContentType });
}
var absoluteUrl = blob.Uri.AbsoluteUri.ToString();
Console.WriteLine(absoluteUrl);
return Ok(absoluteUrl);
}
return BadRequest();
}
catch (Exception ex)
{
return StatusCode(500, $"Internal server error: {ex}");
}
}