Winfrom通过路径调取api

这个代码段展示了如何使用C#进行HTTP请求,包括GET和POST方法。`TypedTableBase`方法用于发送带有特定参数的POST请求,获取JSON格式的响应,然后将其转换为字符串。`HttpPostCreateRequestM`方法同样处理POST请求,但增加了错误处理和资源管理。这些方法在API调用和数据交换中常见。
摘要由CSDN通过智能技术生成

   public string TypedTableBase(string url, string zdTable, string type)
        {
            //字典表下拉带出
            Encoding encoding = Encoding.UTF8;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);//webrequest请求api地址
                                                                            // request.Accept = "text/html,application/xhtml+xml,*/*";
            request.ContentType = "application/json";

            request.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0";
            request.KeepAlive = true;
            request.ProtocolVersion = HttpVersion.Version11;
            request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            request.Method = type.ToUpper().ToString();//get或者post
            byte[] buffer = encoding.GetBytes(zdTable);
            request.ContentLength = buffer.Length;
            using (Stream reqStream = request.GetRequestStream())
            {
                reqStream.Write(buffer, 0, buffer.Length);
            }
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
            {
                string reacerend = reader.ReadToEnd();
                //转成list格式
                return reacerend;
            }

        }
        public string HttpPostCreateRequestM(string url, Object input)
        {
            System.GC.Collect();//垃圾回收,回收没有正常关闭的http连接
            string result = "";//返回结果

            HttpWebRequest request = null;
            HttpWebResponse response = null;

            try
            {
                string jsonString = JsonConvert.SerializeObject(input);
                byte[] objectContent = Encoding.UTF8.GetBytes(jsonString);
                //byte[] bs = Encoding.ASCII.GetBytes(param);

                //设置最大连接数
                ServicePointManager.DefaultConnectionLimit = 200;
                request = (HttpWebRequest)WebRequest.Create(url);
                request.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0";
                request.KeepAlive = true;
                request.ProtocolVersion = HttpVersion.Version11;
                request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
                request.Credentials = CredentialCache.DefaultCredentials;
                request.AllowAutoRedirect = true;

                request.Method = "POST";
                request.Timeout = 60 * 1000;

                //设置POST的数据类型和长度
                //request.ContentType = "application/x-www-form-urlencoded";
                request.ContentType = "application/json";
                request.ContentLength = objectContent.Length;
                using (Stream reqStream = request.GetRequestStream())
                {
                    reqStream.Write(objectContent, 0, objectContent.Length);
                }
                //获取服务端返回
                response = (HttpWebResponse)request.GetResponse();

                //获取服务端返回数据
                StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                result = sr.ReadToEnd().Trim();
                sr.Close();
            }
            catch (System.Threading.ThreadAbortException e)
            {
                System.Threading.Thread.ResetAbort();
                throw e;
            }
            catch (WebException e)
            {
                if (e.Status == WebExceptionStatus.ProtocolError)
                {
                    throw e;
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                //关闭连接和流
                if (response != null)
                {
                    response.Close();
                }
                if (request != null)
                {
                    request.Abort();
                }
            }
            return result;
        }

Winform:
 var PointCallingType = TypedTableBase("http://172.23.13.36:8099/api/services/app/transport/GetDataDic?typeNa=交接" + TypeName, TypeName, "POST");
            var jj = (JObject)JsonConvert.DeserializeObject(PointCallingType);
            List<DataDic> dataDic = JsonConvert.DeserializeObject<List<DataDic>>(JsonConvert.SerializeObject(jj.First.First));

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值