.net通过url访问服务器获取服务器返回数据
1、普通调用:
- public string GetInfo(string url)
- {
- //访问http方法
- string strBuff = "";
- Uri httpURL = new Uri(url);
- ///HttpWebRequest类继承于WebRequest,并没有自己的构造函数,需通过WebRequest的Creat方法建立,并进行强制的类型转换
- HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(httpURL);
- ///通过HttpWebRequest的GetResponse()方法建立HttpWebResponse,强制类型转换
- HttpWebResponse httpResp = (HttpWebResponse)httpReq.GetResponse();
- ///GetResponseStream()方法获取HTTP响应的数据流,并尝试取得URL中所指定的网页内容
- ///若成功取得网页的内容,则以System.IO.Stream形式返回,若失败则产生ProtoclViolationException错误。在此正确的做法应将以下的代码放到一个try块中处理。这里简单处理
- Stream respStream = httpResp.GetResponseStream();
- ///返回的内容是Stream形式的,所以可以利用StreamReader类获取GetResponseStream的内容,并以
- //StreamReader类的Read方法依次读取网页源程序代码每一行的内容,直至行尾(读取的编码格式:UTF8)
- StreamReader respStreamReader = new StreamReader(respStream, Encoding.UTF8);
- strBuff = respStreamReader.ReadToEnd();
- return strBuff;
- }
方法调用举例:
- string url = "http://192.168.1.38:8088/api/user/get_info"; //http协议url
- url +="?token=" + token + "&openid=" + openid ;
- string userInfo = GetInfo(url);
2、json调用(使用Json方法访问url需要在.net3.5以上版本):
- #region Json访问url方式(使用该方法需要在.net3.5以上)
- //获得用户信息
- protected OAuthUser Get_UserInfo(string token , string openid)
- {
- //http协议url
- string Str = GetJson("http://192.168.1.38:8088/api/user/get_info?token=" + token + "&openid=" + openid);
- OAuthUser OAuthUser_Model = JsonHelper.ParseFromJson(Str);
- return OAuthUser_Model;
- }
- protected string GetJson(string url)
- {
- //访问http
- WebClient wc = new WebClient();
- wc.Credentials = CredentialCache.DefaultCredentials;
- wc.Encoding = Encoding.UTF8;
- string returnText = wc.DownloadString(url);
- if (returnText.Contains("errcode"))
- {
- //可能发生错误
- }
- //Response.Write(returnText);
- return returnText;
- }
- ///
- /// 用户信息类
- ///
- public class OAuthUser
- {
- public OAuthUser()
- { }
- #region 数据库字段
- private string _dept;
- private string _name;
- private string _userid;
- #endregion
- #region 字段属性
- ///
- /// 部门
- ///
- public string dept
- {
- set { _dept = value; }
- get { return _dept; }
- }
- ///
- /// 用户名称
- ///
- public string name
- {
- set { _name = value; }
- get { return _name; }
- }
- ///
- /// 用户的唯一标识
- ///
- public string userid
- {
- set { _userid = value; }
- get { return _userid; }
- }
- #endregion
- }
- public class JsonHelper
- {
- ///
- /// 生成Json格式
- ///
- ///
- ///
- ///
- public static string GetJson(T obj)
- {
- DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());
- using (MemoryStream stream = new MemoryStream())
- {
- json.WriteObject(stream, obj);
- string szJson = Encoding.UTF8.GetString(stream.ToArray()); return szJson;
- }
- }
- ///
- /// 获取Json的Model
- ///
- ///
- ///
- ///
- public static T ParseFromJson(string szJson)
- {
- T obj = Activator.CreateInstance();
- using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
- {
- DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
- return (T)serializer.ReadObject(ms);
- }
- }
- }
- #endregion
- json调用方式举例:
- OAuthUser OAuthUser_Model = Get_UserInfo(token, openid);
- //联调测试
- Response.Write("accesstoken:" + token + "
- userid:" + OAuthUser_Model.userid + "
- 用户名称:" + OAuthUser_Model.name + "
- 部门:" + OAuthUser_Model.dept);
二、url为https协议
只需加入一句话即可:
- //访问https方法(先调用以下方法)
- using System.Security.Cryptography.X509Certificates;
- public bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
- {
- //直接确认,否则打不开
- return true;
- }
1、普通调用:
- public string GetInfo(string url)
- {
- //访问https方法需加上这句话(CheckValidationResult就是以上方法)
- ServicePointManager.ServerCertificateValidationCallback =
- new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
- //访问http方法(不需要加上面那句话)
- string strBuff = "";
- Uri httpURL = new Uri(url);
- ///HttpWebRequest类继承于WebRequest,并没有自己的构造函数,需通过WebRequest的Creat方法建立,并进行强制的类型转换
- HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(httpURL);
- ///通过HttpWebRequest的GetResponse()方法建立HttpWebResponse,强制类型转换
- HttpWebResponse httpResp = (HttpWebResponse)httpReq.GetResponse();
- ///GetResponseStream()方法获取HTTP响应的数据流,并尝试取得URL中所指定的网页内容
- ///若成功取得网页的内容,则以System.IO.Stream形式返回,若失败则产生ProtoclViolationException错误。在此正确的做法应将以下的代码放到一个try块中处理。这里简单处理
- Stream respStream = httpResp.GetResponseStream();
- ///返回的内容是Stream形式的,所以可以利用StreamReader类获取GetResponseStream的内容,并以
- //StreamReader类的Read方法依次读取网页源程序代码每一行的内容,直至行尾(读取的编码格式:UTF8)
- StreamReader respStreamReader = new StreamReader(respStream, Encoding.UTF8);
- strBuff = respStreamReader.ReadToEnd();
- return strBuff;
- }
方法调用举例:
- string url = "https://192.168.1.38:8088/api/user/get_info"; //htts协议url
- url +="?token=" + token + "&openid=" + openid ;
- string userInfo = GetInfo(url);
2、Json调用
- //获得用户信息
- protected OAuthUser Get_UserInfo(string token , string openid)
- {
- //htts协议url
- string Str = GetJson("https://192.168.1.38:8088/api/user/get_info?token=" + token + "&openid=" + openid);
- OAuthUser OAuthUser_Model = JsonHelper.ParseFromJson(Str);
- return OAuthUser_Model;
- }
- protected string GetJson(string url)
- {
- //访问https需加上这句话
- ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
- //访问http(不需要加上面那句话)
- WebClient wc = new WebClient();
- wc.Credentials = CredentialCache.DefaultCredentials;
- wc.Encoding = Encoding.UTF8;
- string returnText = wc.DownloadString(url);
- if (returnText.Contains("errcode"))
- {
- //可能发生错误
- }
- //Response.Write(returnText);
- return returnText;
- }
- json调用方式举例:
- OAuthUser OAuthUser_Model = Get_UserInfo(token, openid);
- //联调测试
- Response.Write("accesstoken:" + token + "
- userid:" + OAuthUser_Model.userid + "
- 用户名称:" + OAuthUser_Model.name + "
- 部门:" + OAuthUser_Model.dept);
.net通过url访问服务器获取服务器返回数据的更多相关文章
- js进阶ajax读取json数据(ajax读取json和读取普通文本,和获取服务器返回数据(链接)都是一样的,在url处放上json文件的地址即可)
js进阶ajax读取json数据(ajax读取json和读取普通文本,和获取服务器返回数据(链接)都是一样的,在url处放上json文件的地址即可) 一.总结 ajax读取json和读取普通文本,和获 ...
- ICE学习第四步-----客户端请求服务器返回数据
这次我们来做一个例子,流程很简单:客户端向服务器发送一条指令,服务端接收到这条指令之后,向客户端发送数据库中查询到的数据,最终显示在DataGridView上. 根据上一篇文章介绍的Slice语法,我 ...
- 02 - Unit01:服务器返回数据的json处理+搭建项目环境
服务器返回数据的json处理+搭建项目环境 服务器返回数据的json处理 springMVC JSP响应流程 请求 -->DispatcherServlet -->HandlerMappi ...
- J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题
J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题 2012年03月09 ...
- Postman----模拟服务器返回数据
使用场景:在某些情况下,比如A接口还没开发好,我们需要测试B接口,刚好B接口的请求数据中需要包含A接口返回的数据,这时我们就可以模拟A接口服务器返回的数据来测试B接口 解决办法: 举例:模拟此 htt ...
- datatables 服务器返回数据后的处理-表格数据属性的操作方法(ajax.dataSrc)
http://dt.thxopen.com/reference/option/ajax.dataSrc.html http://datatables.net/reference/option/ajax ...
- Java爬虫(一)利用GET和POST发送请求,获取服务器返回信息
本人所使用软件 eclipse fiddle UC浏览器 分析请求信息 以知乎(https://www.zhihu.com)为例,模拟登陆请求,获取登陆后首页,首先就是分析请求信息. 用UC浏览器F1 ...
- 用ajax的同步请求解决登陆注册需要根据服务器返回数据判断是否能提交的问题
最近在写www.doubilaile.com的登陆注册.需要用ajax请求服务器判断用户名是否存在,用户名和密码是否匹配,进而提交数据.碰到的问题是异步请求都能成功返回数据,但是该数据不能作为紧接着的 ...
- Vue动态添加v-model绑定及获取其返回数据
从数据库拿到的动态数据绑定到页面对应的v-model或者v-bind上,并且根据对页的操作获取到返回的值: 1.首先在data里定义一个数据 timeTip 为一个空数组 data () { retu ...
随机推荐
- jquery each循环遍历完再执行的方法 因为each是异步的 所以要加计数器.
query each循环遍历完再执行的方法因为each是异步的 所以要加计数器.var eachcount=0;$(“.emptytip”).each(function(){ eachcount++c ...
- arcgis server 10 for java 8399根目录是404的提示取消,并跳转到 地图目录 /arcgis/rest/services下
看了Howto: 取消ArcGIS Server 9.x for Java内置tomcat在8399端口的文件列表 http://support.esrichina-bj.cn/2009/0819/9 ...
- Martin Fowler谈微服务的优缺点
很多开发团队已经认识到微服务架构比单体架构更优越.但是也有其他团队感觉到这是一种消弱生产力的负担.就像任何软件架构,微服务架构同样有利弊.为了能做出一个明智的选择,你必须了解这些应用并将它们运用到你特 ...
- C#多线程写日志
由于程序是3层架构的,所有多线程记录日志成了比较棘手的问题,以前还真就没有在意过写日志的问题,认为不过是写文件罢了~~!如今发现原来要实现文件共享,并且能够使多线程同时操作日志还不能相互冲突,真的很麻 ...
- iOS截屏方法
//获取屏幕截屏方法 - (UIImage *)capture { // 创建一个context UIGraphicsBeginImageContextWithOptions(self.view.bo ...
- libcurl进行HTTP GET获取JSON数据(转载)
转载:http://blog.csdn.net/vincent2610/article/details/68488365 #include <stdio.h> #include <i ...
- System.Diagnostics.Debug和System.Diagnostics.Trace
在 .net 类库中有一个 system.diagnostics 命名空间,该命名空间提供了一些与系统进程.事件日志.和性能计数器进行交互的类库.当中包括了两个对开发人员而言十分有用的类——debug ...
- 【Kafka】Kafka-分区数-备份数-如何设置-怎么确定-怎么修改
Kafka-分区数-备份数-如何设置-怎么确定-怎么修改 kafka partition 数量 更新_百度搜索 kafka重新分配partition - - CSDN博客 如何为Kafka集群选择合适 ...
- Spring(十二):IOC容器中Bean的生命周期方法
IOC容器中Bean的生命周期方法 1)Spring IOC容器可以管理Bean的声明周期,Spring允许在Bean生命周期的特定点执行定制的任务. 2)Spring IOC容器对Bean的生命周期 ...
- tail -f 然后grep,处理缓存的问题
学习了:http://www.quwenqing.com/read-134.html 对日志记录做多次grep过滤输出,格式如下: tail -f log | grep xxx | grep yyy ...