访问接口的方式无非GET,POST,PUT,DELETE等几种,下面就简单针对GET和POST记录一下在.net core中的实现方式,废话不多说,直接上代码:

 

GET方式访问

/// <summary>
        /// 调用API并返回结果字符串(http方式)
        /// </summary>
        /// <param name="url">访问接口全路径,包含参数</param>
        /// <returns>返回JSON字符串</returns>
        public static async Task<string> GetRequest(string url)
        {
            try
            {
                using (var httpClientHandler = new HttpClientHandler())
                {
            //需要设置SSL访问方式才需要写下面一行代码,如无要求,可以不写
                    httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; };

                    //HTTPClient
                    using (var client = new HttpClient(httpClientHandler))
                    {
                        //client.BaseAddress = new Uri(url);
                        //设置请求体中的内容,并以GET的方式请求
                        var response = await client.GetAsync(url);
                        //获取请求到数据,并转化为字符串
                        var result = response.Content.ReadAsStringAsync().Result;
                        return result;
                    }


                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }

  

POST方式如下

/// <summary>
        /// 调用API并返回结果字符串(http方式)
        /// </summary>
        /// <param name="strAddr">服务器地址</param>
        /// <param name="param">参数字符串</param>
        /// <param name="token">Token</param>
        /// <returns>返回JSON字符串</returns>
        public static async Task<string> PostRequestAsync(string url, object param, string token = "")
        {
            try
            {
                using (var httpClientHandler = new HttpClientHandler())
                {
                    //需要设置SSL访问方式才需要写下面一行代码,如无要求,可以不写
                    httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; };

                    //HTTPClient
                    using (var client = new HttpClient(httpClientHandler))
                    {
                        string jsonContent = JsonConvert.SerializeObject(param);
                        var content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
                        client.DefaultRequestHeaders.Add("Method", "Post");
                        //client.BaseAddress = new Uri(url);
                        //设置请求体中的内容,并以post的方式请求
                        var response = await client.PostAsync(url, content);
                        response.EnsureSuccessStatusCode();
                        //获取请求到数据,并转化为字符串
                        var result = response.Content.ReadAsStringAsync().Result;
                        return result;
                    }


                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }