C# 正在使用授权将文件发送到API.Net 5

C# 正在使用授权将文件发送到API.Net 5,c#,.net,azure,api,C#,.net,Azure,Api,在我的系统上,我需要将从表单接收到的文件发送到将保存在Azure中的API。 对于此发送,我需要传递一个承载令牌,该令牌是我能够制作和接收的部分,通过邮递员测试,我可以发送和接收生成文件的访问url。 在我的.Net项目中,我无法发送文件并接收其url以写入数据库。我需要传递这个令牌并上传到API URL。 我会把我写的代码放到这里 [HttpPost] public async Task<IActionResult> UploadAzure([FromForm] IFormFile

在我的系统上,我需要将从表单接收到的文件发送到将保存在Azure中的API。 对于此发送,我需要传递一个承载令牌,该令牌是我能够制作和接收的部分,通过邮递员测试,我可以发送和接收生成文件的访问url。 在我的.Net项目中,我无法发送文件并接收其url以写入数据库。我需要传递这个令牌并上传到API URL。 我会把我写的代码放到这里

[HttpPost]
public async Task<IActionResult> UploadAzure([FromForm] IFormFile file)
{
    var Token = await _tokenAzure.ReturnToken();
    var _urlApi = "https://mysite.dev/api/file/savepdf";
    var _tokenApi = Token.AccessToken;

    if (file == null || file.Length == 0)
        return Content("file not selected");

    HttpClientHandler clientHandler = new HttpClientHandler();
    clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return true; };

    // Pass the handler to httpclient(from you are calling api)
    HttpClient client = new HttpClient(clientHandler);

    byte[] data;
    using (var br = new BinaryReader(file.OpenReadStream()))
        data = br.ReadBytes((int)file.OpenReadStream().Length);
    ByteArrayContent bytes = new(data);
    MultipartFormDataContent multiContent = new()
    {
        { bytes, "file", file.FileName }
    };

    var result = client.PostAsync(_urlApi, multiContent).Result;



    return RedirectToAction("Index");
}
[HttpPost]
公共异步任务上载Azure([FromForm]格式文件)
{
var Token=await_tokenAzure.ReturnToken();
var_urlApi=”https://mysite.dev/api/file/savepdf";
var_tokenApi=Token.AccessToken;
if(file==null | | file.Length==0)
返回内容(“未选择文件”);
HttpClientHandler clientHandler=新的HttpClientHandler();
clientHandler.ServerCertificateCostomValidationCallback=(发送方、证书、链、sslPolicyErrors)=>{return true;};
//将处理程序传递给httpclient(从您正在调用的api)
HttpClient=新的HttpClient(clientHandler);
字节[]数据;
使用(var br=new二进制读取器(file.OpenReadStream())
data=br.ReadBytes((int)file.OpenReadStream().Length);
ByteArrayContent字节=新(数据);
MultipartFormDataContent multiContent=new()
{
{字节,“文件”,file.FileName}
};
var result=client.PostAsync(_urlApi,multiContent).result;
返回操作(“索引”);
}

您可能需要添加以下代码行

client.DefaultRequestHeaders.Authorization =new AuthenticationHeaderValue("Bearer", _tokenApi);