C#跨平台调用接口(URL传参GET调用和Post Json传参调用)_c调用url接口并传递参数_小马亮哥的博客-程序员秘密

技术标签: C#语言  

方法一: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;
        }


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yitonglizihao/article/details/50780453

智能推荐

禁止屏幕截图_vue 禁止截屏_vonions的博客-程序员秘密

在activity里边加上下边这句话,即可禁止app进行截屏getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE)

Qt Designer的小部件编辑模式_qt designer 列表_给我打包一份三十块钱的外卖的博客-程序员秘密

Qt Designer的小部件编辑模式Qt Designer的小部件编辑模式编辑表格物业编辑器动态特性对象检查器Qt Designer的小部件编辑模式在窗口小部件编辑模式下,可以将对象从主窗口的窗口小部件框拖动到表单,进行编辑,调整大小,在表单上四处拖动,甚至在表单之间拖动。可以交互修改对象属性,以便可以立即看到更改。编辑界面直观直观,操作简单,但仍支持Qt强大的布局功能。要创建和编辑新的形式,打开文件菜单,选择新建表单…或按Ctrl + N键。也可以通过从“文件”菜单中选择“打开表单… ”或按Ct

USB有线网卡怎么用_fygwfygyiq的博客-程序员秘密

USB有线网卡怎么用|浏览:5085|更新:2013-10-06 19:10因为自己电脑的网卡坏了或者有其他需要,一般会去买一个USB有线网卡,价格便宜而且实用。但有的网友却发现买来的USB有线网卡不能用,或者说是不知道USB有线网卡怎么用。那么,USB有线网卡怎么用呢?请看USB有线网卡的使用方法:首先,

【HTML 标签的 参考列表 (按 功能分类 排列)】_Hey_Coder的博客-程序员秘密

HTML 标签的 参考列表★ 按照 功能分类 排列⑴ 基础标签⑵ 格式标签① 格式标签② HTML5 中的 格式标签⑶ 表单标签① 表单标签② HTML5 中的表单标签⑷ 框架标签⑸ 图像标签① 图像标签② html5 中的 新图像标签⑹ 音频/视频 标签⑺ 链接标签⑻ 列表标签⑼ 表格标签⑽ 样式标签 & 节标签① 样式标签 & 节标签② HTML 5 中的 样式标签 & 节标签⑾ 元信息 标签 (文档信息 标签)⑿ 编程

系统登录的密码加盐和动态加盐_登录加盐_Phoenix_smf的博客-程序员秘密

关于系统登录,在上大学的时候就是简单的用户名密码存储到数据库进行匹配,当然这是最基本的登录,但是实际的应用系统中这是非常不安全的,账户密码不论是在数据库中存储还是在网上传输过程中都应该是密文而不能是明文,一般都是采用MD5或者SHA加密算法把密码加密,但是这也是不安全的,因为现在网上对于这些流行的加密算法都有密码库,他可以利用库去对比加密后的密文从而反向推出你的密码,网上也有各种在线MD5加密解密...

第一次面试——腾讯电话面试——前端开发(暑期实习生)_周杰伦今天喝奶茶了吗的博客-程序员秘密

说起电话面试,就不得不提我手机的自动标识功能了……不知道为什么竟然把打来的面试电话标成“骚扰电话”了……再加上我长期习惯手机静音,所以漏接了很多次打来的面试电话。。。所以,亲身经历告诉我——求职期间,电话畅通,打来就接,管它是不是被标成骚扰电话。这是我人生中第一次求职的面试,还是电话面试。我印象太深刻了接电话的时候我正在操场上,因为没经验,所以就在毫无准备的情况下接受了电话面试。。...

随便推点

如何文件操作_weixin_30861459的博客-程序员秘密

今日内容1.什么是文件 2.为何用文件 3.如何用文件 4.文件操作补 5.常用方法 6.文件内指针的移动 7.with的使用4. 文件操作4.1 主模式r:只读模式L(默认) 当文件不存在时,会报错 当文件存在时,文件指针指向文件的开头w:只写模式 当文件不存在时,新建一个空文档 当文件存在时,清空...

在anaconda平台下写第一个python程序 ‘hello‘遇到的问题以及解决方案_qq_43142545的博客-程序员秘密

一 在写输出为’hello’的程序,遇到的第一个问题是AttributeError: module ‘tensorflow’ has no attribute ‘Session’,解决办法是:在引用tensorflow时,使用import tensorflow.compat.v1 as tf ,出现这个原因是因为 tensorflow 2.x版本没有Session这个属性,如果使用的是tensorflow的2.x版本时又想使用Session属性,可以使用 import tensorflow.com

pycharm三个有引号不能自动生成函数注释_weixin_40248634的博客-程序员秘密

去File | Settings | Tools | Python Integrated Tools | Docstring format 这里改成你想要的格式,然后再回去看看你的三个引号。没有函数注释的情况下是plain。改成reStucturedText, 在def funciton() 下面打上三对双引号,中间位置回车,得到是这样的:def function(x,y,z) """ :param x: :param y: :param z: :re

计算机组成原理测试题——第5章 输入输出系统(上)(2)_影龙武的博客-程序员秘密

计算机组成原理测试题——第5章 输入输出系统(上)(2)1单选中断服务程序的流程可表示为(B)A.中断服务—>保护现场—>中断返回—>恢复现场B.保护现场—>中断服务—>恢复现场—>中断返回C.中断服务—>保护现场—>恢复现场—>中断返回D.保护现场—>中断服务—>中断返回—>恢复现场2单选在程序查询方式的输入输出系统中,假设不考虑处理时间,每一次查询操作需要100个时钟周期,CPU的时钟频率为50MHz。CPU必须

python数据类型可变和不可变_python中不可变数据类型和可变数据类型_weixin_39559559的博客-程序员秘密

https://www.cnblogs.com/operationhome/p/9642460.html在学习python过程中我们一定会遇到不可变数据类型和可变数据类型。1.名词解释以下所有的内容都是基于内存地址来说的。不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。可变数据类型 :当该数据类型的对应变量的值发...

C# .Net连接DB2数据库最简单实用教程_c# 添加64位ibm.data.db2.dll_boboyang24的博客-程序员秘密

在网上看了各种操作DB2数据库的坑,讲的都是太片面了,这里我汇总一种最简单的方式提供给大家参考1.安装IBM Data Server .NET Provider 程序,安装成功后引用对应版本的IBM.Data.DB2.dll 文件,安装完成之后,如果是默认路径安装的,一般是在C:\Program Files\IBM\IBM DATA SERVER DRIVER\bin下面.IBM Data Server .NET Provider 程序 下载链接(),网上下载的很多坑,我也是好不容易找到可用的。

推荐文章

热门文章

相关标签