首页 > 其他分享 >net8 webapi

net8 webapi

时间:2024-02-07 11:12:37浏览次数:26  
标签:webapi string JObject ob item str net8 new

直接用net8 web api模板,创建时不要选控制器,直接添加类文件,并调整基类等即可

using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.Text.Unicode;

namespace WebApplication1.Controllers
{
    [ApiController]
    [Route("[controller]/[action]")]
    public class HelloController : ControllerBase
    {
        [HttpGet]
        public string Get1()
        {
            JObject ob = new JObject();
            ob["姓名"] = "ljq";
            ob["年"] = 40;

            string str = ob.ToString();
            return str;
        }

        [HttpGet]
        public string Get2(string str, int m)
        {
            JObject ob = new JObject();
            ob["姓名"] = str;
            ob["年"] = m;

            string t = ob.ToString();
            return t;
        }
        [HttpGet("{str}/{m}")]
        public string Get3(string str, int m)
        {
            JObject ob = new JObject();
            ob["姓名"] = str;
            ob["年"] = m;

            string t = ob.ToString();
            return t;
        }

        [HttpGet("{str}/{m}")]
        [HttpPost("{str}/{m}")]
        public async Task<string> p1(string str, int m)
        {
            JObject ob = new JObject();
            foreach (var item in this.Request.Headers)
            {
                ob[item.Key] = item.Value.ToString();
            }
            StreamReader r = new StreamReader(this.Request.Body);
            string b = await r.ReadToEndAsync();

            ob["b"] = b;
            string t = ob.ToString();
            return t;
        }


        [HttpPost]
        [RequestSizeLimit(int.MaxValue)]
        [RequestFormLimits(MultipartBodyLengthLimit = int.MaxValue)]
        public async Task<string> p2()
        {
            //这个可以接收字符串,也可接收二进制,可以替代p1函数
            JObject ob = new JObject();
            foreach (var item in this.Request.Headers)
            {
                ob[item.Key] = item.Value.ToString();
            }

            MemoryStream ms = new MemoryStream(2);
            await this.Request.Body.CopyToAsync(ms);
            byte[] bytes = ms.ToArray();

            string str = System.Text.Encoding.UTF8.GetString(bytes);
            ob["b"] = str;
            string t = ob.ToString();
            return t;
        }

        [HttpPost]
        //[RequestSizeLimit(int.MaxValue)]
        //[RequestFormLimits(MultipartBodyLengthLimit = int.MaxValue)]
        [DisableRequestSizeLimit]
        public async Task<string> p3()
        {
            //这个可以接收字符串,也可接收二进制,可以替代p1函数
//默认上传30M以下,如果超过则加上面的配置
JObject ob = new JObject(); foreach (var item in this.Request.Headers) { ob[item.Key] = item.Value.ToString(); } MemoryStream ms = new MemoryStream(2); await this.Request.Body.CopyToAsync(ms); byte[] bytes = ms.ToArray(); FileStream fs = new FileStream("d:\\1.zip", FileMode.Create); fs.Write(bytes, 0, bytes.Length); ms.Close(); fs.Close(); return "ok"; } [HttpPost] public async Task<string> p4() { //这个可以接收字符串,也可接收二进制,可以替代p1函数 JObject ob = new JObject(); foreach (var item in this.Request.Headers) { ob[item.Key] = item.Value.ToString(); } MemoryStream ms = new MemoryStream(2); await this.Request.Body.CopyToAsync(ms); byte[] bytes = ms.ToArray(); FileStream fs = new FileStream("d:\\1.zip", FileMode.Create); fs.Write(bytes, 0, bytes.Length); ms.Close(); fs.Close(); return "ok"; } } }

 

直接招待exe文件可以发布,但发布在IIS上失败,还需再研究下

标签:webapi,string,JObject,ob,item,str,net8,new
From: https://www.cnblogs.com/81/p/18010742

相关文章

  • docker 部署 asp.net8 项目
    1、需要编写dockerfile文件#基础镜像FROMmcr.microsoft.com/dotnet/aspnet:8.0ASbase#工作目录WORKDIR/app#开放访问端口EXPOSE8080#复制内容到镜像COPY./app#指定默认入口ENTRYPOINT["dotnet","Web.Admin.dll"]2、编写docker-compose.yaml文件version:'3's......
  • net8字符串匹配查找System.Buffers.SearchValues类
    新增的System.Buffers.SearchValues类,可以用来进行字符串的查找和匹配,相比较 string 类型的操作,性能有大幅提升,下面还是用BenchmarkDotNet进行测试:BenchmarkRunner.Run<SearchValuesTest>();Console.ReadKey();[SimpleJob(RunStrategy.ColdStart,iterationCount:5)]......
  • net8 随机数类Random GetItems() 、Shuffle()方法
    1、在8中对随机数类Random提供了GetItems()方法,可以根据指定的数量在提供的一个集合中随机抽取数据项生成一个新的集合:ReadOnlySpan<string>colors=new[]{"Red","Green","Blue","Black"};string[]t1=Random.Shared.GetItems(colors,10);Console.WriteLine(......
  • net8 对接webapi接口通过 GetFromJsonAsAsyncEnumerable方法直接得到对象,无需进行反序
    调用API直接获取到对象现在有一个接口返回如下图中的数据:如果是在8以前的版本中获取该接口的数据,需要先获取到接口内容,然后进行反序列化,代码如下conststringRequestUri="http://localhost:5145/user";usingvarclient=newHttpClient();varstream=awaitclient......
  • 使用 Asp.net core webapi 集成配置系统,提高程序的灵活和可维护性
    前言:什么是集成配置系统?集成配置系统的主要目的是将应用程序的配置信息与代码分离,使得配置信息可以在不需要修改代码的情况下进行更改。这样可以提高应用程序的灵活性和可维护性。ASP.NETCore提供了一种灵活的配置系统,可以轻松地将配置信息从不同的来源加载到应用程序中,并且......
  • CSharp: UglyToad.PdfPig int .net8
     /*IDE:VS202217.5OS:windows10.net:8.0生成PDF文档,从PDF文档中获取文字内容控制台下测试*///Seehttps://aka.ms/new-console-templateformoreinformationusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Xml.L......
  • k8s .netcore webapi
    .netcorewebapi迁移到到k8s1.  kcreatedeploymentaaa--image=aaa-image:1.2 -r=2, 然后把生成的deploy,-oyaml,删除不必要信息,保存为yamlapiVersion:apps/v1kind:Deploymentmetadata: labels:  app:my-app name:my-app namespace:app-ns......
  • 如何让你的.NET WebAPI程序支持HTTP3?
    下面我将总结构建Http3的经验,以TokenGateway的项目为例,请注意使用Http3之前你需要知道它的限制,WindowsWindows11版本22000或更高版本/WindowsServer2022。TLS1.3或更高版本的连接。Linux已安装libmsquic包。实现讲解首先我们需要拉取我们的代码gitcloneh......
  • Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
    Restful风格的api虽然规范了四个方法(Get、Post、Put、Delete)用于数据的查询、增加、修改和删除,但在实际应用中,还是会有很多公司只使用了Get和Post两个方法,查询数据使用Get方法,其它业务操作使用Post方法(为什么会有情况,以后可以写一篇文章讨论一下_),但是Post方法一般......
  • .net8 传参数遇见个很郁闷的问题
    将老项目迁移至.net8遇见个奇葩问题记录下,顺便看有人遇见过么新建.net8 mvc项目控制器publicclassHomeController:Controller{privatereadonlyILogger<HomeController>_logger;publicHomeController(ILogger<HomeController>logger)......