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