首页 > 其他分享 >HttpClient 使用(一)Get、Post 请求

HttpClient 使用(一)Get、Post 请求

时间:2024-03-20 22:45:09浏览次数:26  
标签:await GET resp Get var new Post Parameter HttpClient

  最近发现不少新人不知道怎么在后台发起Http请求,简单分享一下,HttpClient 因为是自带的,所以选择分享这个,还有不少优秀的库,例如 Flurl,或者 Refit。

  而说到 Get、Post,就不得不提一下 rest 了,具体是什么呢,感兴趣的可以移步看文档,我不多叙述:传送门

按照惯例,废话不多说,代码走起

GET

using var client = httpClientFactory.CreateClient();
var url = "https://localhost:7237/api/methods/GET/Route/UploaFile?method=GET&value=Query";
var resp = await client.GetAsync(url);

var str = await resp.Content.ReadAsStringAsync();

 

POST

包含文件与表单

var content = new MultipartFormDataContent
{
    { new StringContent("POST", Encoding.UTF8), "Method" },
    { new StringContent("Form", Encoding.UTF8), "Value" },
    { new StringContent(JsonSerializer.Serialize(new Parameter(){ Method = "POST",Value = "Body"}),Encoding.UTF8, "application/json") },
    { new ByteArrayContent(System.IO.File.ReadAllBytes(@"C:\Users\ysmc_\Downloads\file.txt")), "files", "file.txt" }
};

using var client = httpClientFactory.CreateClient();
var url = "https://localhost:7237/api/methods/GET/Route/UploaFile?method=GET&value=Query";
var resp = await client.PostAsync(url, content);

var str = await resp.Content.ReadAsStringAsync();

API

[HttpPost("{method}/{value}/UploaFile")]
public async Task<Dictionary<string, object>> UploadFileAsync(
    [FromRoute] Parameter route,
    [FromQuery] Parameter query,
    [FromForm] Parameter form,
    IEnumerable<IFormFile> files)
{
    var fileStream = files.FirstOrDefault()?.OpenReadStream();
    var fileContent = new StringBuilder();
    if (fileStream != null)
    {
        using var reader = new StreamReader(fileStream!);
        while (reader.Peek() >= 0)
        {
            fileContent.AppendLine(await reader.ReadLineAsync());
        }
    }

    var result = new Dictionary<string, object>()
    {
        ["route"] = route,
        ["query"] = query,
        ["form"] = form,
        ["fileContent"] = fileContent.ToString()
    };

    return result;
}

 

标签:await,GET,resp,Get,var,new,Post,Parameter,HttpClient
From: https://www.cnblogs.com/ysmc/p/17968749

相关文章

  • python requests.post Max retries exceeded with url 报错
    python requests.post  Maxretriesexceededwithurl 报错 importrequestsfromrequests.adaptersimportHTTPAdapterfromrequests.packages.urllib3.util.retryimportRetrysession=requests.Session()retries=Retry(total=5,backoff_factor=0.1,st......
  • linux下InetAddress.getLocalHost()很慢10s
    问题原因:执行InetAddress.getLocalHost()方法的时候,根据系统名称去hosts文件里找匹配的ip发现找不到合适的IP,一直处于等待状态。解决办法:1、查看本机系统名称 2、编辑hosts文件,在其后补充“cenos1”     参考链接:https://blog.csdn.net/lijun169/article/detail......
  • 使用Python-psycopg访问postgres、openGauss、MogDB
    摘要Psycopg是一种用于执行SQL语句的PythonAPI,可以为PostgreSQL、GaussDB数据库提供统一访问接口,应用程序可基于它进行数据操作。Psycopg2是对libpq的封装,主要使用C语言实现,既高效又安全。它具有客户端游标和服务器端游标、异步通信和通知、支持“COPYTO/COPYFROM”......
  • Uncaught SyntaxError: Invalid destructuring assignment target
    UncaughtSyntaxError:Invaliddestructuringassignmenttarget 这个问题是由于一个二维数组中,一个应该是逗号的地方,放了一个],废了几个小时才找到问题,真的是无语了.模拟一下案情:正确的是这样的:vararray=[[1,2,3],[4,5,6],[7,8,9]]却错误的变成了这样:vararray=[[......
  • postcss-px2rem 的使用
    两种方法:1、不改变第三方组件的样式第一步先卸载安装的postcss-px2remnpmuninstallpostcss-px2rem安装postcss-px2rem-excludenpmipostcss-px2rem-exclude--save第二步在项目根目录下面建立postcss.config.js文件 module.exports={plugins:{......
  • 【QT+QGIS跨平台编译】之八十三:【QGIS_Gui跨平台编译】—【错误处理:未定义类型QgsColo
    文章目录一、未定义类型QgsColorRamp二、错误处理一、未定义类型QgsColorRamp错误信息:二、错误处理第29行增加:#include"qgscolorramp.h"......
  • | [0/8] Installing [email protected][npminstall:get] retry GET https://registry.npm.tao
    昨天用开源项目UIRecorder初始化时报错,查看日志发现是淘宝的源证书过期,如下:PSE:\20231213\uirecorder\uirecorder_test>PSE:\20231213\uirecorder\uirecorder_test>uirecorderinit____________......
  • qt http get和post非阻塞时区分调用接口
    qthttpget和post接口有阻塞和非阻塞两种实现。非阻塞的方式是信号槽关联,在槽函数中实现。实际项目中多个接口调用的话需要区分调用接口,然后根据接口解析json报文,我分享下我的方法。通过获取QStringurl=reply->url().toString();可以获取到调用的url,可以根据url来进行区......
  • getopt函数/getopt_long函数
    getopt函数/getopt_long函数目录getopt函数/getopt_long函数getoptgetopt_longgetoptgetopt函数是Unix和Linux系统编程中用于解析命令行选项的常用工具。它属于GNUC库的一部分,因此在大多数Linux发行版中都是可用的。下面是一个简单的getopt函数的使用示例:#include......
  • PostgersSQL 数组类型
    什么是数组列?数组列是一种特殊的数据类型,它可以在单个数据库列中存储多个值。与传统的单值列不同,数组列允许我们将多个相关值组合成一个实体。例如,在一个名为”tags”的表中,我们可以使用数组列来存储一篇文章的多个标签。 如何在PostgreSQL中创建数组列?在PostgreSQL中,我们可......