Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Newtonsoft.Json.JsonReaderException:解析值h时遇到意外字符。路径'';,第0行,位置0_C#_Asp.net Mvc_Asp.net Web Api_Asp.net Core Webapi_Blazor Webassembly - Fatal编程技术网

C# Newtonsoft.Json.JsonReaderException:解析值h时遇到意外字符。路径'';,第0行,位置0

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

我正在尝试显示要上载的选定图像的URL。但是,当我运行程序时,它告诉我
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)
to
var 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}");
            }
        }