C# 请求接口RestfulAPI,Get请求,Post请求,上传附件及带参数


        /// <summary>
        /// GET
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public static string HttpGet(string url)
        {
            //ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
            Encoding encoding = Encoding.UTF8;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "GET";
            request.Accept = "text/html, application/xhtml+xml, */*";
            request.ContentType = "application/json";

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            if (response.StatusCode == HttpStatusCode.OK)
            {
                using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                {
                    return reader.ReadToEnd();
                }
            }
            else
            {
                return null;
            }
        }
        /// <summary>
        /// Post请求
        /// </summary>
        /// <param name="url">地址</param>
        /// <param name="postData">post参数</param>
        /// <param name="headers">头部参数</param>
        /// <returns></returns>
        public static string HttpPost(string url, string postData, Dictionary<string, string> headers = null)
        {
            if (url.StartsWith("https"))
                System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
            if (postData == null) { postData = ""; }
            HttpContent httpContent = new StringContent(postData);
            httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            httpContent.Headers.ContentType.CharSet = "utf-8";
            if (headers != null && headers.Count > 0)
            {
                foreach (var item in headers)
                {
                    httpContent.Headers.Add(item.Key, item.Value);
                }
            }
            HttpClient httpClient = new HttpClient();
            //httpClient..setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");

            HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;

            var statusCode = response.StatusCode.ToString();
            if (response.IsSuccessStatusCode)
            {
                string result = response.Content.ReadAsStringAsync().Result;
                return result;
            }

            return null;
        } 
        public static string HttpPostByFormData(string url, string formData)
        {
            var webClient = new WebClient();
            return webClient.Post(url, formData);
        }

        /// <summary>
        /// Http请求,上传附件并带参数
        /// </summary>
        /// <param name="url">请求地址</param>
        /// <param name="postData">参数,key:参数名,value:参数值</param>
        /// <param name="postFiles">附件,key:附件参数名,value:附件物理地址(不可为远程地址)</param>
        /// <returns></returns>
        public static string HttpUpload(string url, Dictionary<string, string> postData, Dictionary<string, string> postFiles)
        {
            using (var client = new HttpClient())
            {
                using (var multipartFormDataContent = new MultipartFormDataContent())
                {
                    if (postData != null && postData.Count > 0)
                    {
                        foreach (var keyValuePair in postData)
                        {
                            multipartFormDataContent.Add(new StringContent(keyValuePair.Value),
                                String.Format("\"{0}\"", keyValuePair.Key));
                        }
                    }
                    if (postFiles != null && postFiles.Count > 0)
                    {
                        foreach (var item in postFiles)
                        {
                            multipartFormDataContent.Add(new ByteArrayContent(System.IO.File.ReadAllBytes(item.Value)),
                          "\"" + item.Key + "\"",
                          Uri.EscapeDataString(item.Value.Split(new string[] { "\\", "/" }, StringSplitOptions.RemoveEmptyEntries).LastOrDefault())); 
                        }
                    } 
                    var html = client.PostAsync(url, multipartFormDataContent).Result.Content.ReadAsStringAsync().Result;
                    return html;
                }
            }
        }
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值