后台发送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. Flask + Nginx + uwsgi 部署过程

    一.安装Flask 1.itsdangerous tar xvf itsdangerous-0.23.tar.gz cd itsdangerous-0.23/ python setup.py inst ...

  2. Hystrix断路器中的服务熔断与服务降级

    一.Hystrix断路器 微服务架构特点就是多服务,多数据源,支撑系统应用.这样导致微服务之间存在依赖关系.如果其中一个服务故障,可能导致系统宕机,这就是所谓的雪崩效应. 1.为什么需要断路器 服务雪 ...

  3. 封装一个按Key排序的Map工具

    Map是集合的存放顺序是按哈希值定的,有时候不是我们需要的,当想要一个按自己规定顺序存放顺序,可以用LinkedHashMap,这里自己把LinkedHashMap封装了一次 package test ...

  4. 【Matlab】abs不支持复整数

    需要将uint8转换成double型数据才能计算 https://blog.csdn.net/lihe4151021/article/details/89372688 图像数据格式uint8与doub ...

  5. 计算机网络 Raw_Socket编程 Ping C语言

    计算机网络做了一个附加题,用C语言Raw_Socket实现ping指令. 通过本部的Mooc学习了一下Socket编程,然后成功写了出来orz 先放一下代码: #include <stdio.h ...

  6. Python列表简介和遍历

    一.Python3列表简介 1.1.Python列表简介 序列是Python中最基本的数据结构 序列中的每个值都有对应的位置值,称之为索引,第一个索引是0,第二个索引是1,以此类推. Python有6 ...

  7. C语言程序设计:二分查找(折半查找)

    目录 C语言程序设计:二分查找(折半查找) 1.什么是二分查找 2.二分查找的优点 3.二分查找的缺点 4.二分查找原理 5.源代码实现 6.后话 C语言程序设计:二分查找(折半查找) 1.什么是二分 ...

  8. CF1497A Meximization 题解

    Content 给定 \(n\) 个数 \(a_1,a_2,\dots,a_n\),你需要将这些数重新排列,使得 \(\sum\limits_{i=1}^n\operatorname{mex}(a_1 ...

  9. axios 高级封装

    import axios from 'axios'; import qs from 'qs'; const Unit = { async getApi(ajaxCfg){ let data = awa ...

  10. python 安装模块报错 response.py", line 302, in _error_catcher

    python 安装模块报错 Exception:Traceback (most recent call last): File "/usr/share/python-wheels/urlli ...