一、url为http协议

1、普通调用:

  1. public string GetInfo(string url)
  2. {
  3. //访问http方法
  4. string strBuff = "";
  5. Uri httpURL = new Uri(url);
  6. ///HttpWebRequest类继承于WebRequest,并没有自己的构造函数,需通过WebRequest的Creat方法建立,并进行强制的类型转换
  7. HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(httpURL);
  8. ///通过HttpWebRequest的GetResponse()方法建立HttpWebResponse,强制类型转换
  9. HttpWebResponse httpResp = (HttpWebResponse)httpReq.GetResponse();
  10. ///GetResponseStream()方法获取HTTP响应的数据流,并尝试取得URL中所指定的网页内容
  11. ///若成功取得网页的内容,则以System.IO.Stream形式返回,若失败则产生ProtoclViolationException错误。在此正确的做法应将以下的代码放到一个try块中处理。这里简单处理
  12. Stream respStream = httpResp.GetResponseStream();
  13. ///返回的内容是Stream形式的,所以可以利用StreamReader类获取GetResponseStream的内容,并以
  14. //StreamReader类的Read方法依次读取网页源程序代码每一行的内容,直至行尾(读取的编码格式:UTF8)
  15. StreamReader respStreamReader = new StreamReader(respStream, Encoding.UTF8);
  16. strBuff = respStreamReader.ReadToEnd();
  17. return strBuff;
  18. }

方法调用举例:

  1. string url = "http://192.168.1.38:8088/api/user/get_info";    //http协议url
  2. url +="?token=" + token + "&openid=" + openid ;
  3. string userInfo = GetInfo(url);

2、json调用(使用Json方法访问url需要在.net3.5以上版本):

  1. #region Json访问url方式(使用该方法需要在.net3.5以上)
  2. //获得用户信息
  3. protected OAuthUser Get_UserInfo(string token , string openid)
  4. {
  5. //http协议url
  6. string Str = GetJson("http://192.168.1.38:8088/api/user/get_info?token=" + token + "&openid=" + openid);
  7. OAuthUser OAuthUser_Model = JsonHelper.ParseFromJson(Str);
  8. return OAuthUser_Model;
  9. }
  10. protected string GetJson(string url)
  11. {
  12. //访问http
  13. WebClient wc = new WebClient();
  14. wc.Credentials = CredentialCache.DefaultCredentials;
  15. wc.Encoding = Encoding.UTF8;
  16. string returnText = wc.DownloadString(url);
  17. if (returnText.Contains("errcode"))
  18. {
  19. //可能发生错误
  20. }
  21. //Response.Write(returnText);
  22. return returnText;
  23. }
  24. ///
  25. /// 用户信息类
  26. ///
  27. public class OAuthUser
  28. {
  29. public OAuthUser()
  30. { }
  31. #region 数据库字段
  32. private string _dept;
  33. private string _name;
  34. private string _userid;
  35. #endregion
  36. #region 字段属性
  37. ///
  38. /// 部门
  39. ///
  40. public string dept
  41. {
  42. set { _dept = value; }
  43. get { return _dept; }
  44. }
  45. ///
  46. /// 用户名称
  47. ///
  48. public string name
  49. {
  50. set { _name = value; }
  51. get { return _name; }
  52. }
  53. ///
  54. /// 用户的唯一标识
  55. ///
  56. public string userid
  57. {
  58. set { _userid = value; }
  59. get { return _userid; }
  60. }
  61. #endregion
  62. }
  63. public class JsonHelper
  64. {
  65. ///
  66. /// 生成Json格式
  67. ///
  68. ///
  69. ///
  70. ///
  71. public static string GetJson(T obj)
  72. {
  73. DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());
  74. using (MemoryStream stream = new MemoryStream())
  75. {
  76. json.WriteObject(stream, obj);
  77. string szJson = Encoding.UTF8.GetString(stream.ToArray()); return szJson;
  78. }
  79. }
  80. ///
  81. /// 获取Json的Model
  82. ///
  83. ///
  84. ///
  85. ///
  86. public static T ParseFromJson(string szJson)
  87. {
  88. T obj = Activator.CreateInstance();
  89. using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
  90. {
  91. DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
  92. return (T)serializer.ReadObject(ms);
  93. }
  94. }
  95. }
  96. #endregion
  1. json调用方式举例:
  2. OAuthUser OAuthUser_Model = Get_UserInfo(token, openid);
  3. //联调测试
  4. Response.Write("accesstoken:" + token + "
  5. userid:" + OAuthUser_Model.userid + "
  6. 用户名称:" + OAuthUser_Model.name + "
  7. 部门:" + OAuthUser_Model.dept);

二、url为https协议
只需加入一句话即可:

  1. //访问https方法(先调用以下方法)
  2. using System.Security.Cryptography.X509Certificates;
  1. public bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
  2. {
  3. //直接确认,否则打不开
  4. return true;
  5. }

1、普通调用:

  1. public string GetInfo(string url)
  2. {
  3. //访问https方法需加上这句话(CheckValidationResult就是以上方法)
  4. ServicePointManager.ServerCertificateValidationCallback =
  5. new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
  6. //访问http方法(不需要加上面那句话)
  7. string strBuff = "";
  8. Uri httpURL = new Uri(url);
  9. ///HttpWebRequest类继承于WebRequest,并没有自己的构造函数,需通过WebRequest的Creat方法建立,并进行强制的类型转换
  10. HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(httpURL);
  11. ///通过HttpWebRequest的GetResponse()方法建立HttpWebResponse,强制类型转换
  12. HttpWebResponse httpResp = (HttpWebResponse)httpReq.GetResponse();
  13. ///GetResponseStream()方法获取HTTP响应的数据流,并尝试取得URL中所指定的网页内容
  14. ///若成功取得网页的内容,则以System.IO.Stream形式返回,若失败则产生ProtoclViolationException错误。在此正确的做法应将以下的代码放到一个try块中处理。这里简单处理
  15. Stream respStream = httpResp.GetResponseStream();
  16. ///返回的内容是Stream形式的,所以可以利用StreamReader类获取GetResponseStream的内容,并以
  17. //StreamReader类的Read方法依次读取网页源程序代码每一行的内容,直至行尾(读取的编码格式:UTF8)
  18. StreamReader respStreamReader = new StreamReader(respStream, Encoding.UTF8);
  19. strBuff = respStreamReader.ReadToEnd();
  20. return strBuff;
  21. }

方法调用举例:

  1. string url = "https://192.168.1.38:8088/api/user/get_info";    //htts协议url
  2. url +="?token=" + token + "&openid=" + openid ;
  3. string userInfo = GetInfo(url);

2、Json调用

  1. //获得用户信息
  2. protected OAuthUser Get_UserInfo(string token , string openid)
  3. {
  4. //htts协议url
  5. string Str = GetJson("https://192.168.1.38:8088/api/user/get_info?token=" + token + "&openid=" + openid);
  6. OAuthUser OAuthUser_Model = JsonHelper.ParseFromJson(Str);
  7. return OAuthUser_Model;
  8. }
  9. protected string GetJson(string url)
  10. {
  11. //访问https需加上这句话
  12. ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
  13. //访问http(不需要加上面那句话)
  14. WebClient wc = new WebClient();
  15. wc.Credentials = CredentialCache.DefaultCredentials;
  16. wc.Encoding = Encoding.UTF8;
  17. string returnText = wc.DownloadString(url);
  18. if (returnText.Contains("errcode"))
  19. {
  20. //可能发生错误
  21. }
  22. //Response.Write(returnText);
  23. return returnText;
  24. }
  1. json调用方式举例:
  2. OAuthUser OAuthUser_Model = Get_UserInfo(token, openid);
  3. //联调测试
  4. Response.Write("accesstoken:" + token + "
  5. userid:" + OAuthUser_Model.userid + "
  6. 用户名称:" + OAuthUser_Model.name + "
  7. 部门:" + OAuthUser_Model.dept);

.net通过url访问服务器获取服务器返回数据的更多相关文章

  1. js进阶ajax读取json数据(ajax读取json和读取普通文本,和获取服务器返回数据(链接)都是一样的,在url处放上json文件的地址即可)

    js进阶ajax读取json数据(ajax读取json和读取普通文本,和获取服务器返回数据(链接)都是一样的,在url处放上json文件的地址即可) 一.总结 ajax读取json和读取普通文本,和获 ...

  2. ICE学习第四步-----客户端请求服务器返回数据

    这次我们来做一个例子,流程很简单:客户端向服务器发送一条指令,服务端接收到这条指令之后,向客户端发送数据库中查询到的数据,最终显示在DataGridView上. 根据上一篇文章介绍的Slice语法,我 ...

  3. 02 - Unit01:服务器返回数据的json处理+搭建项目环境

    服务器返回数据的json处理+搭建项目环境 服务器返回数据的json处理 springMVC JSP响应流程 请求 -->DispatcherServlet -->HandlerMappi ...

  4. J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题

    J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题 2012年03月09 ...

  5. Postman----模拟服务器返回数据

    使用场景:在某些情况下,比如A接口还没开发好,我们需要测试B接口,刚好B接口的请求数据中需要包含A接口返回的数据,这时我们就可以模拟A接口服务器返回的数据来测试B接口 解决办法: 举例:模拟此 htt ...

  6. datatables 服务器返回数据后的处理-表格数据属性的操作方法(ajax.dataSrc)

    http://dt.thxopen.com/reference/option/ajax.dataSrc.html http://datatables.net/reference/option/ajax ...

  7. Java爬虫(一)利用GET和POST发送请求,获取服务器返回信息

    本人所使用软件 eclipse fiddle UC浏览器 分析请求信息 以知乎(https://www.zhihu.com)为例,模拟登陆请求,获取登陆后首页,首先就是分析请求信息. 用UC浏览器F1 ...

  8. 用ajax的同步请求解决登陆注册需要根据服务器返回数据判断是否能提交的问题

    最近在写www.doubilaile.com的登陆注册.需要用ajax请求服务器判断用户名是否存在,用户名和密码是否匹配,进而提交数据.碰到的问题是异步请求都能成功返回数据,但是该数据不能作为紧接着的 ...

  9. Vue动态添加v-model绑定及获取其返回数据

    从数据库拿到的动态数据绑定到页面对应的v-model或者v-bind上,并且根据对页的操作获取到返回的值: 1.首先在data里定义一个数据 timeTip 为一个空数组 data () { retu ...

随机推荐

  1. IE9版本以下ajax 跨域问题解决

    ajax跨域请求数据在谷歌火狐我本地IE11都是没问题的. 让测试就发现问题了,IE8下请求不到数据,然后我查看一下自己写的js看有没有不兼容问题,可是都没有啊,为什么就请求不到呢. 我把ajax的e ...

  2. 洛谷 P1123 取数游戏

    题目描述 一个N×M的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻8个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少. ...

  3. 奇怪吸引子---DequanLi

    奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...

  4. 为Linux操作系统所在的logical volumn扩容

    感谢Lieven和Tom的协助,这个问题才得以解决.我在这里把解决问题的步骤总结一下,帮助自己学习. 问题描述 =========== 笔者有一台linux的物理机,其上名为centos-root的l ...

  5. 文本框只能输入数字(兼容IE火狐)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. C# 播放铃声最简短的代码实现方式

    因为只是做一个软件的闹铃播放效果,到网上找的时候试了几种,哎,都失败了,而且代码挺杂的,最终一句搞定了: 1         // 窗体加载事件 2         private void Time ...

  7. Ubuntu SVN安装&使用&命令

    SVN 安装 apt-get install subversion checkout svn checkout svn://192.168.1.110/app 按提示输入相应的用户名和密码. 往版本库 ...

  8. 基于Deep Learning的中文分词尝试

    http://h2ex.com/1282 现有分词介绍 自然语言处理(NLP,Natural Language Processing)是一个信息时代最重要的技术之一,简单来讲,就是让计算机能够理解人类 ...

  9. Linq-进行Json序列化的过程中出现错误解决办法

    错误截图如下: 这是因为表t_sysuser与表t_sysrole之间存在外键联系导致的 解决办法: 进入到创建的linq to sql类中,右键[属性]-将序列化模式修改为[单向]保存即可

  10. 利用OSG实现模拟飞机尾迹-粒子系统

    利用OSG实现模拟飞机尾迹-粒子系统 粒子系统简介:         粒子系统是用于不规则模糊物体建模及图像生成的一种方法.         粒子系统是一种过程模型,即利用各种计算过程生成模型各个体素 ...