.net core请求外部接口

  • 在ConfigService中加上:services.AddHttpClient();//将HttpClient注入进来
services.AddHttpClient();//将HttpClient注入进来
  • 在控制器中写:
private IHttpClientFactory _httpClient;
        public ZHPtestController(IHttpClientFactory _httpClient)
        {
            this._httpClient = _httpClient;
        }
  • 然后下面这段代码可自行封装一个类,也可直接放在方法中:
public class JsonContent : StringContent
        {
            public JsonContent(object obj) :
            base(JsonConvert.SerializeObject(obj), Encoding.UTF8, "application/json")
            { }
        }
  • Get请求
//设置请求的路径
                        var url = "";
                        //使用注入的httpclientfactory获取client
                        var client = _httpClient.CreateClient();
                        client.BaseAddress = new Uri(url);
                        //设置请求体中的内容,并以post的方式请求
                        var response = await client.GetAsync(url);
                        //获取请求到数据,并转化为字符串
                        var result = response.Content.ReadAsStringAsync().Result;
  • Post请求
//设置请求的路径
                    var url = "";
                    //使用注入的httpclientfactory获取client
                    var client = _httpClient.CreateClient();
                    client.BaseAddress = new Uri(url);
                    //设置请求体中的内容,并以post的方式请求                   
                    var response = await client.PostAsync(url,new JsonContent(new { PayId= pay_id, DeviceId= sbid, DeviceMode="1", PayMode="0", PayDataId= "1234567890123456", PayData=pd, PayTime = datetime , PayAmount =amt, PayNum =1}));
                    //获取请求到数据,并转化为字符串
                    back = response.Content.ReadAsStringAsync().Result;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,您需要在ASP.NET Core项目中添加Microsoft.AspNetCore.Http和Microsoft.AspNetCore.StaticFiles包。然后在您的控制器中添加以下代码: ```csharp [HttpPost] [Route("api/uploadvideo")] public async Task<IActionResult> UploadVideo(IFormFile file) { if (file == null || file.Length == 0) { return BadRequest("File not selected."); } // Set the path where the video will be stored var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "videos", file.FileName); // Create the file in the specified path using (var stream = new FileStream(path, FileMode.Create)) { await file.CopyToAsync(stream); } return Ok("Video uploaded successfully."); } ``` 在这个示例中,我们使用`HttpPost`属性来指定这是一个POST请求,并使用`Route`属性来设置API的路由。我们还使用`IFormFile`类型的参数来接收上传的视频文件。 在方法中,我们首先检查文件是否存在,如果不存在,则返回`BadRequest`结果。如果文件存在,则使用`Path.Combine`方法创建文件的保存路径。接着,我们使用`FileStream`类创建文件流,并使用`CopyToAsync`方法从上传文件流中复制数据到指定的文件流中。最后,我们使用`Ok`方法返回上传成功的消息。请注意,我们将视频文件存储在`wwwroot`文件夹中,这是ASP.NET Core应用程序的默认静态文件目录。 当用户使用POST请求上传视频时,他们可以使用类似于以下示例的代码: ```html <form method="post" enctype="multipart/form-data" action="/api/uploadvideo"> <input type="file" name="file" /> <button type="submit">Upload Video</button> </form> ``` 在这个示例中,我们使用`enctype="multipart/form-data"`属性来指定这是一个多部分表单,以便能够上传文件。我们还使用`input`标签的`type="file"`属性来允许用户选择视频文件。最后,我们使用`action`属性来指定上传视频的API路由。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值