当前位置: 首页 > news >正文

.Net Framework请求外部Api

要在.NET Framework 4.5中进行外部API的POST请求,你可以使用HttpClient类。

1. Post请求

using System;
using System.Net.Http;
using System.Threading.Tasks;class Program
{static async Task Main(string[] args){// 创建一个HttpClient实例using (HttpClient client = new HttpClient()){try{// 创建请求的内容var requestData = new { Name = "John", Age = 30 };var content = new StringContent(JsonConvert.SerializeObject(requestData), System.Text.Encoding.UTF8, "application/json");// 发起POST请求并获取响应HttpResponseMessage response = await client.PostAsync("https://api.example.com/some-endpoint", content);// 确认请求成功response.EnsureSuccessStatusCode();// 读取响应内容string responseBody = await response.Content.ReadAsStringAsync();// 处理响应数据Console.WriteLine(responseBody);}catch (HttpRequestException e){// 处理请求异常Console.WriteLine($"请求异常: {e.Message}");}}}
}

另外,post传参还有另外一种方式,使用FormUrlEncodedContent

var content = new FormUrlEncodedContent(new Dictionary<string, string>(){{"empid", "E01930"},});

2. Get请求

// 创建一个HttpClient实例
using (HttpClient client = new HttpClient())
{
// 设置API的URL
string apiUrl = "http://nhbsapt01:801/accountreviewautoupdate";
string fullUrl = apiUrl + "?empid=" + "A00001";try
{// 发送POST请求并获取响应// HttpResponseMessage response = client.PostAsync(apiUrl, content).Result;HttpResponseMessage response = client.GetAsync(fullUrl).Result;// 确保请求成功response.EnsureSuccessStatusCode();// 读取响应内容string responseBody = response.Content.ReadAsStringAsync().Result;// 处理响应数据Console.WriteLine(responseBody);
}
catch (Exception ex)
{Console.WriteLine("Error: " + ex.Message);
}

3. 奇葩(post请求url传参)

// 创建一个HttpClient实例
using (HttpClient client = new HttpClient())
{// 设置API的URLstring apiUrl = "http://nhbsapt01:801/accountreviewautoupdate";string fullUrl = apiUrl + "?empid=" + "A00001";// 构造要发送的参数var postData = new Dictionary<string, string>{{ "empid", "A00001" },};// 将参数转换为表单编码格式var content = new FormUrlEncodedContent(postData);try{// 发送POST请求并获取响应// HttpResponseMessage response = client.PostAsync(apiUrl, content).Result;HttpResponseMessage response = client.PostAsync(fullUrl,content).Result;// 确保请求成功response.EnsureSuccessStatusCode();// 读取响应内容string responseBody = response.Content.ReadAsStringAsync().Result;// 处理响应数据Console.WriteLine(responseBody);}catch (Exception ex){Console.WriteLine("Error: " + ex.Message);}
http://www.lryc.cn/news/117375.html

相关文章:

  • 线程池工作原理深入解析
  • chatGPT小白快速入门课程大纲
  • 网络编程——多路复用——epoll机制
  • chapter14:springboot与安全
  • Linux初识网络基础
  • vue3+ts 动态导入多文件组件
  • 补充122836356
  • 记录 pl-table 表格头部文字抖动的问题
  • Vite 创建 Vue项目之后,eslint 错误提示的处理
  • FFmpeg 硬编码VideoToolBox流程
  • 恒盛策略:内盘是买入还是卖出?
  • 安装Lombok--Lombok的常用注解说明及使用方法
  • 无涯教程-Perl - endpwent函数
  • vue项目在body设置公共的背景前提下,区分首页背景图和其他页面背景图
  • 测试人员该怎样写软件缺陷报告?
  • 【大数据】Flink 详解(二):核心篇 Ⅱ
  • 一孩半政策
  • 如何在 Spring Boot 中集成日志框架 SLF4J、Log4j
  • 如何在Linux布置nginx(附带Nginx基本操作步骤)
  • Xcode升级导致关联库报错
  • 利用docker run --rm 命令实现使用宿主机中没有的命令
  • 中级课程——XSS
  • win10+Vmware+ubuntu18 mosquitto调试记录
  • Java EE 突击 9 - Spring Boot 日志文件
  • 篇十六:命令模式:封装请求
  • Android 系统框架
  • 【Hystrix技术指南】(3)超时机制的原理和实现
  • MySQL: Failed to Connect to MySQL at XXXX:3306 with user root
  • 《大型网站技术架构设计》第二篇 架构-性能
  • 谷歌推出AI模型机器人RT2 将文本和图像输出为机器人动作