后台发送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. tomcat源码1

    Lifecycle:(接口) LifecycleBase:abstract:添加,删除Listener,各种init,start,stop,destory LifecycleMBeanBase:abs ...

  2. zabbix之监控 io

    #:编写监控脚本 root@ubuntu:/etc/zabbix/zabbix_agentd.conf.d# vim iotop_total.sh #!/bin/bash #Date: 2016/11 ...

  3. hive 启动不成功,报错:hive 启动报 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/mapred/MRVersi

    1. 现象:在任意位置输入 hive,准备启动 hive 时,报错: Exception in thread "main" java.lang.NoClassDefFoundErr ...

  4. springboot 设置项目路劲后不能访问首页

    环境背景 学习版本 : springboot2.31 controller  代码 @controller public class Iindex{ @RequestMapping("/&q ...

  5. 【力扣】两个数组的交集 II

    给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2: 输入:nums1 = [4,9,5], nu ...

  6. 【C/C++】习题3-3 数数字/算法竞赛入门经典/数组和字符串

    [题目] 把前n个(n<=10000)的整数顺序写在一起:123456789101112-- 数一数0~9各出现多少次(输出10个整数,分别是0,1,2,--,9出现的次数) [解答] 暴力求解 ...

  7. numpy基础教程--浅拷贝和深拷贝

    在numpy中,使用等号(=)直接赋值返回的是一个视图,属于浅拷贝:要完整的拷贝一个numpy.ndarray类型的数据的话,只能调用copy()函数 # coding = utf-8 import ...

  8. 03 - Vue3 UI Framework - 首页

    顶部边栏做完了,接下来开始做官网的首页 返回阅读列表点击 这里 创建视图文件夹 让我们先新建一个 src/views 文件夹,用来存放官网的主要视图 然后在该文件夹下新建两个 vue 文件,作为我们的 ...

  9. [BUUCTF]PWN——hitcontraining_magicheap

    hitcontraining_magicheap 附件 步骤: 例行检查,64位程序,开启了nx和canary 本地试运行一下,经典的堆的菜单 64位ida载入,检索程序里的字符串的时候发现了后门 m ...

  10. 多个工作簿拆分(Excel代码集团)

    一个文件夹里有N个工作簿,每个工作簿中包括N个工作表,将各个工作表拆分成工作簿,命名为每个工作簿里第一个工作表的A列和B列. 工作簿.工作表数量不定,表内内容不限,拆分后保存于当前文件夹下的" ...