C#跨平台调用接口(URL传参GET调用和Post Json传参调用)

来源:互联网 发布:centos svn 防火墙 编辑:程序博客网 时间:2024/06/03 13:40

方法一:URL传参Get调用

使用HttpWebRequest,将参数Get调用


  string HampsonURL = new BSysConfig().GetValue(ConfigKey.接口地址);
                HampsonInfo Hmodel = new HampsonInfo();
                Hmodel.cname = ePersonInfo.Name;
                Hmodel.cmobile = ePersonInfo.Mobile;
                Hmodel.cage = ePersonInfo.Age.ToString();
                Hmodel.ccity = ePersonInfo.IntentCity;
                Hmodel.user = "8a9ea098ac0079426ae3c722c8e48d0d";
                string url = string.Format(@"{0}?user={1}&cname={2}&cmobile={3}&cage={4}&ccity={5}"
                           , HampsonURL, Hmodel.user, Hmodel.cname, Hmodel.cmobile, Hmodel.cage, Hmodel.ccity);
                try
                {
                    string resultCode = GetHttp(url, 100000);
                    switch (Convert.ToInt32(resultCode))
                    {
                        case 0:
                            result = "录入成功";
                            break;
                        case 1:
                            result = "此用户已存在";
                            break;
                        case 2:
                            result = "其他错误";
                            break;
                        default:
                            result = "文档木有写是啥错";
                            break;
                    }
                }
                catch (Exception ex)
                {
                    result = "异常:"+ex.ToString();
                }



   public static string GetHttp(string url, int timeout)
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Timeout = timeout;
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
                StringBuilder builder = new StringBuilder();
                while (-1 != reader.Peek())
                {
                    builder.Append(reader.ReadLine());
                }
                return builder.ToString();
            }
            catch (Exception exception)
            {
                return ("错误:" + exception.Message);
            }
        }


方法二:创建对象,序列化为Json格式,在使用WebRequest进行POST调用


string MeilianCPS = new BSysConfig().GetValue(ConfigKey.接口地址);
                string MeilianKEY = new BSysConfig().GetValue(ConfigKey.加密字符);
                MeiLian_CPSInfo Mmodel = new MeiLian_CPSInfo();
                Mmodel.City = ePersonInfo.IntentCity;
                Mmodel.Mobile = ePersonInfo.Mobile;
                Mmodel.Name = ePersonInfo.Name;
                Mmodel.Sex = ePersonInfo.Sex == 1 ? "True" : "False";
                Mmodel.UserName = "cps_shiji";
                string Keys = Mmodel.Mobile + MeilianKEY;
                Mmodel.KEY = EncryptString.EncryptMD5(Keys);//
                string strContent = JsonHelper.Serialize(Mmodel);
                result = GetMobileConfByUserId(strContent, MeilianCPS);
                if (result.Contains("000000"))
                    result = "操作成功";



        public   string GetMobileConfByUserId(string strContent, string strOnLine)
        {
            string rs = null;
            ServicePointManager.DefaultConnectionLimit = 300;
            CookieContainer cookieContainer = new CookieContainer();
            // 设置提交的相关参数 
            HttpWebRequest request = null;
            HttpWebResponse SendSMSResponse = null;
            Stream dataStream = null;
            StreamReader SendSMSResponseStream = null;
            try
            {
                request = WebRequest.Create(strOnLine) as HttpWebRequest;
                request.Method = "POST";
                request.KeepAlive = false;
                request.ServicePoint.ConnectionLimit = 300;
                request.AllowAutoRedirect = true;
                request.Timeout = 10000;
                request.ReadWriteTimeout = 10000;
                request.ContentType = "application/json";
                request.Accept = "application/xml";
                request.Headers.Add("ProduceAction", HttpUtility.UrlEncode("CustomerIncome"));
                byte[] bytes = Encoding.UTF8.GetBytes(strContent);
                request.Proxy = null;
                request.CookieContainer = cookieContainer;
                using (dataStream = request.GetRequestStream())
                {
                    dataStream.Write(bytes, 0, bytes.Length);
                }
                SendSMSResponse = (HttpWebResponse)request.GetResponse();
                if (SendSMSResponse.StatusCode == HttpStatusCode.RequestTimeout)
                {
                    if (SendSMSResponse != null)
                    {
                        SendSMSResponse.Close();
                        SendSMSResponse = null;
                    }
                    if (request != null)
                    {
                        request.Abort();
                    }
                    return null;
                }
                SendSMSResponseStream = new StreamReader(SendSMSResponse.GetResponseStream(), Encoding.GetEncoding("utf-8"));
                string strRespone = SendSMSResponseStream.ReadToEnd();
                return strRespone;
            }
            catch (Exception ex)
            {
                if (dataStream != null)
                {
                    dataStream.Close();
                    dataStream.Dispose();
                    dataStream = null;
                }
                if (SendSMSResponseStream != null)
                {
                    SendSMSResponseStream.Close();
                    SendSMSResponseStream.Dispose();
                    SendSMSResponseStream = null;
                }
                if (SendSMSResponse != null)
                {
                    SendSMSResponse.Close();
                    SendSMSResponse = null;
                }
                if (request != null)
                {
                    request.Abort();
                }
            }
            finally
            {
                if (dataStream != null)
                {
                    dataStream.Close();
                    dataStream.Dispose();
                    dataStream = null;
                }
                if (SendSMSResponseStream != null)
                {
                    SendSMSResponseStream.Close();
                    SendSMSResponseStream.Dispose();
                    SendSMSResponseStream = null;
                }
                if (SendSMSResponse != null)
                {
                    SendSMSResponse.Close();
                    SendSMSResponse = null;
                }
                if (request != null)
                {
                    request.Abort();
                }
            }            
            return rs;
        }


0 0