C# 后台http请求示例

示例demo:控制台程序和部署本地接口

1.

部署本地接口,供测试请求数据

webapi程序:
public class HomeController : Controller
    {
        public ActionResult Index(string name)
        {
            return Content(name);
        }

        [HttpPost]
        public ActionResult postreturn(demo demo)
        {
            return Content(demo.code+"  "+demo.id);
        }
    }


    /// <summary>
    /// demo类用于测试post请求
    /// </summary>
    public class demo
    {
        public string code { get; set; }
        public string id { get; set; }
    }

2.

控制台程序

static void Main(string[] args)
        { 
           //http-get请求
            Console.Write(get());
              Console.ReadLine();

            //http-post请求
             demo demo = new demo() { code = "123123", id = "id" };
             //注意:post函数里面是参数是string类型,所以这里需要序列化
             string json = JsonConvert.SerializeObject(demo);
             Console.Write(HttpPost("http://localhost:8848/home/postreturn", json));
             Console.ReadLine(); 

        }

        public static string  get()
        {

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:8848/home/index?name=sss");
            request.Method = "GET";
            request.ContentType = "text/html;charset=UTF-8";

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();

            return retString;
        }
       
            public static string HttpPost(string url, string postDataStr)
            {
                string strReturn;
                //在转换字节时指定编码格式
                byte[] byteData = Encoding.UTF8.GetBytes(postDataStr);

                //配置Http协议头
                HttpWebRequest resquest = (HttpWebRequest)WebRequest.Create(url);
                resquest.Method = "POST";
                resquest.ContentType = "application/json";
                resquest.ContentLength = byteData.Length;
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
                //发送数据
                using (Stream resquestStream = resquest.GetRequestStream())
                {
                    resquestStream.Write(byteData, 0, byteData.Length);
                }
                //如果没token注释掉
                //设置HTTP头Http Basic认证
                string authorization = "A81FB7745D098233F42365EB3F27AD6AD0590A5BF6BA5277B3470B7B2B97DB1AB49A3F969C40A03677BB1AAEB67F9B2DB83C28367A983F3CE0BD27A269276BC1A6CCEA83A1C6164FE741D82459777F85B0D5936F03175315AF7E7CA412FBAA474A702A4636490D18557418DE71A25B7F6EFDD9B8D00E77D92803E60BFA9E93245A073360D84EC7A251C9EEA0FBA40225D58B1EC2FE2A9C1CDC69ADFD12C40676AA7D7B1A3481ABB7AD274658E3532726AA187FABBB5D8B196A51EB313BFCC60632A5";
                resquest.Headers.Add("Authorization", authorization); 

                //接受并解析信息
                using (WebResponse response = resquest.GetResponse())
                {
                    //解决乱码:utf-8 + streamreader.readToEnd
                    StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));
                    strReturn = reader.ReadToEnd();
                    reader.Close();
                    reader.Dispose();
                }
                return strReturn;

        }
    }

    public class demo
    {
        public string code { get; set; }
        public string id { get; set; }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值