后台发送get请求

1.发送带参数的get请求

        /// <summary>
/// 发送get请求 参数拼接在url后面
/// </summary>
/// <param name="url">请求接口地址</param>
/// <returns></returns>
public static string HttpGet(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
//设置发送请求的类型
request.ContentType = "text/html;charset=UTF-8";// "application/json";
//设置请求超时时间
request.Timeout = 60 * 1000; HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
string strResult = reader.ReadToEnd();
reader.Close();
response.Close();
return strResult;
}
}

2.后台接收请求API

        /// <summary>
/// 获取站点信息
/// </summary>
/// <returns></returns>
[HttpGet]
[Route("GetStationInfo")]
public ActionResult GetStationInfo(string stationName)
{
List<StationInfo> station= _stationServices.GetStationList().Where(p => p.StationName == stationName).ToList();
return new JsonResult(new { code = 1000, data = station });
}

后台发送post请求

1.发送带参数的post请求

            string url = "https://localhost:44319/api/Station/AddStationInfo";
StationInfo stationInfo = new StationInfo()
{
StationGuid = Guid.NewGuid().ToString(),
StationName = "站点10",
UpdateTime = DateTime.Now
};
//传递json格式字符串信息
var jsonStr = JsonConvert.SerializeObject(stationInfo);
var result = HttpPost(url, jsonStr);
var returnData = JsonConvert.DeserializeObject<ReturnData>(result);

2.后台请求的方法

        /// <summary>
/// 发送post请求 参数在Body中
/// </summary>
/// <param name="url">请求接口地址</param>
/// <param name="json">json字符串</param>
/// <returns></returns>
public static string HttpPost(string url, string json)
{
//创建请求
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
//请求方式为POST
request.Method = "POST";
request.ContentType = "application/json";
//设置请求超时时间
request.Timeout = 60 * 1000;
try
{
//添加post请求参数
byte[] bs = Encoding.UTF8.GetBytes(json);
using (Stream reqStream = request.GetRequestStream())
{
reqStream.Write(bs, 0, bs.Length);
reqStream.Close();
}
//发送请求并获取相应回应数据
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.ASCII))
{
string content = reader.ReadToEnd();
return content;
}
}
}
catch (WebException ex)
{
return string.Format("错误信息:{0},传输json串:{1}", ex.Message, json);
}
}

3.后台接收请求API

        /// <summary>
/// 添加站点信息
/// </summary>
/// <param name="station"></param>
/// <returns></returns>
[HttpPost]
[Route("AddStationInfo")]
public ActionResult AddStationInfo(StationInfo station)
{
try
{
StationInfo stationInfo = new StationInfo();
stationInfo.StationGuid = station.StationGuid;
stationInfo.StationName = station.StationName;
stationInfo.UpdateTime = station.UpdateTime;
string result = _stationServices.AddStation(stationInfo) > 0 ? "添加成功" : "添加失败";
return new JsonResult(new { code = 1000, data = result });
}
catch (Exception ex)
{
return new JsonResult(new { code = 1000, data = ex.Message });
}
}

C# 后台发送get,post请求及WebApi接收的更多相关文章

  1. 调用webapi 错误:使用 HTTP 谓词 POST 向虚拟目录发送了一个请求,而默认文档是不支持 GET 或 HEAD 以外的 HTTP 谓词的静态文件。的解决方案

    第一次调用webapi出错如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http:// ...

  2. 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期

    腾讯云图片鉴黄集成到C#   官方文档:https://cloud.tencent.com/document/product/641/12422 请求官方API及签名的生成代码如下: public c ...

  3. 后台发送http请求通用方法,包括get和post

    package com.examsafety.service.sh; import java.io.BufferedReader; import java.io.IOException; import ...

  4. 关于form表单或者Ajax向后台发送数据时,数据格式的探究

    最近在做一个资产管理系统项目,其中有一个部分是客户端向服务端发送采集到的数据的,服务端是Django写的,客户端需要用rrequests模块模拟发送请求 假设发送的数据是这样的: data = {'s ...

  5. ajax提交表单向后台发送数据

    Ajax提交表单 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  6. 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(66)-MVC WebApi 用户验证 (2)

    前言: 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(65)-MVC WebApi 用户验证 (1) 回顾上一节,我们利用webapi简单的登录并 ...

  7. ExtJs定时消息提示框,类似于QQ右下角提示,ExtJs如何定时向后台发出两个请求并刷新数据实例

    原文出自:https://blog.csdn.net/seesun2012 思路: 1.加载页面,加载Ext.TaskManager.start()方法: 2.执行定时器方法: 3.获取地址向后台发送 ...

  8. vue-cli 3 ----- 项目频繁发送‘sockjs-node/info’请求

    在vue-cli3跑项目时发现了这个问题,浏览器一直在频繁发送这个请求,导致联调时很不方便,而且本地开发时项目也不能实时更新. 看了网上很多的 (1)  解决方案, 大多都是直接去node_modul ...

  9. Ajax发送PUT/DELETE请求时出现错误的原因及解决方案

    本文讲什么? 大家应该都知道.在HTTP中,规定了很多种请求方式,包括POST,PUT,GET,DELETE等.每一种方式都有这种方式的独特的用处,根据英文名称,我们能够很清楚的知道DELETE方法的 ...

随机推荐

  1. Linux环境下为普通用户添加sudo权限

    系统环境:Centos6.5 1.背景: sudo是Linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部root命令的一个工具.Linux系统下,为了安全,一般来说我们操作都是在普通用户 ...

  2. Linux系统分区及挂载点

    一.关于Linux的分区情况 虽然硬盘分区表中最多能存储四个分区,但我们实际使用时一般只分为两个分区,一个是主分区(Primary Partion)一个是扩展分区(extended partition ...

  3. Java Timestamp 类的使用

    很简单,我们可以这样声明 Timestamp ts=new Timestamp(new Date().getTime());这样我们就可以得到时间比较具体的一个类型转换!!! 在开发web应用中,针对 ...

  4. 开发中Design Review和Code Review

    一.Design Review 详解 翻译为设计评审,也就是对需求设计进行审核,防止出现异常问题,例如下面的这些 可用性 外部依赖有哪些?如果这些外部依赖崩溃了我们有什么处理措施? 我们SLA是什么? ...

  5. SpringBoot Redis 发布订阅模式 Pub/Sub

    SpringBoot Redis 发布订阅模式 Pub/Sub 注意:redis的发布订阅模式不可以将消息进行持久化,订阅者发生网络断开.宕机等可能导致错过消息. Redis命令行下使用发布订阅 pu ...

  6. cron 获取下次运行时间(基于 C# + Quartz.NET)

    代码 Quartz 的 cron 支持秒,导致一些 cron 库无法准确的获得下次执行时间,这里使用 Quartz.Net 自带的方法来获取下次执行时间. //引用 Quartz CronExpres ...

  7. live2d

    原文来自https://www.fghrsh.net/post/123.html Live2D 看板娘 v1.4 / Demo 3 - 内置 waifu-tips.json (博客园等网站引用推荐) ...

  8. CF475A Bayan Bus 题解

    Update \(\texttt{2020.10.6}\) 修改了一些笔误. Content 模拟一个核载 \(34\) 人的巴士上有 \(k\) 个人时的巴士的状态. 每个人都会优先选择有空位的最后 ...

  9. LuoguP7478 【A】StickSuger 题解

    Content 给定一个长度为 \(n\) 的仅包含小写字母的字符串 \(s\),请找到一个二元组 \((i,j)\)(\(i<j\))使得在交换字符串 \(s\) 的第 \(i\) 个和第 \ ...

  10. 分布式文件系统fastdfs安装以及python调用

    fastfds的安装和使用 一.所需依赖 操作系统:centos7.x(注意的是centos使用yum安装相关依赖) fastdfs:V6.06.tar.gz libfastcommon:V1.0.4 ...