当前位置: 首页 > news >正文

做赚钱的网站今日国际军事新闻最新消息

做赚钱的网站,今日国际军事新闻最新消息,网站图片设置4:3,珠海制作企业网站为什么80%的码农都做不了架构师?>>> 我们只知道通讯的请求和结果,逻辑结构并不是完全明白。 在这里我想将每条动弹的信息原封不动的显示在界面中。 所以需要控件做一些扩展,来将HTML标记转换为视图。 WPF可以很完美的实现自定义控…

为什么80%的码农都做不了架构师?>>>   hot3.png

我们只知道通讯的请求和结果,逻辑结构并不是完全明白。
在这里我想将每条动弹的信息原封不动的显示在界面中。
所以需要控件做一些扩展,来将HTML标记转换为视图。
WPF可以很完美的实现自定义控件,开发者的Idea可以很简洁的被呈现,这是我选择WPF的原因。
接下来将构筑控件,这里利用到了WebBrowser,HtmlAgilityPack

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Net;
using System.IO;namespace OCMove
{public enum HttpMethodType{[Description("GET")]GET = 0,[Description("POST")]POST = 1,[Description("PUT")]PUT = 2,}public class HttpObject{public virtual string Send(HttpMethodType method, string hostUrl, string queryString, WebHeaderCollection header, byte[] requestBody, IWebProxy proxy, CookieContainer cc,int timeout, AsyncCallback callback){string methodType = "GET";string url = hostUrl;string referer = "";Uri uriRequest = null;bool bkeeplive = true;string useragent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)";string contenttype = "application/x-www-form-urlencoded";#region Methodswitch (method){case HttpMethodType.POST:{methodType = "POST";break;}case HttpMethodType.PUT:{methodType = "PUT";break;}case HttpMethodType.GET:default:{methodType = "GET";break;}}#endregion //Method#region URLif (!string.IsNullOrEmpty(queryString)){url = string.Format("{0}?{1}", hostUrl, queryString);}uriRequest = new Uri(url);if (uriRequest.ToString().ToLower().StartsWith("https")){ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);}System.Net.ServicePointManager.Expect100Continue = false;HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uriRequest);#endregion //URL#region Headersif (header != null){referer = header[HttpRequestHeader.Referer] as string;bkeeplive = Convert.ToBoolean(header[HttpRequestHeader.KeepAlive]);useragent = header[HttpRequestHeader.UserAgent] as string;contenttype = header[HttpRequestHeader.ContentType] as string;//request.Headers = header;}#endregion //Headers#region Settingsif (!string.IsNullOrEmpty(referer)){request.Referer = referer;}request.Proxy = proxy == null ? HttpWebRequest.DefaultWebProxy : proxy;request.CookieContainer = cc;request.KeepAlive = bkeeplive==null ? true : bkeeplive;request.UserAgent = string.IsNullOrEmpty(useragent) ? "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)" : useragent;request.Timeout = timeout;request.Method = methodType;#endregion //Settingsif (method == HttpMethodType.POST ||method == HttpMethodType.PUT){request.ContentType = string.IsNullOrEmpty(contenttype) ? "application/x-www-form-urlencoded" : contenttype;request.ContentLength = requestBody.Length;Stream newStream = request.GetRequestStream();newStream.Write(requestBody, 0, requestBody.Length);newStream.Close();}try{if (callback == null){HttpWebResponse response = (HttpWebResponse)request.GetResponse();Encoding encoding = !string.IsNullOrEmpty(response.ContentEncoding) ? Encoding.GetEncoding(response.ContentEncoding) : Encoding.UTF8;Stream stream = response.GetResponseStream();using (StreamReader reader = new StreamReader(stream, encoding)){return  reader.ReadToEnd();}}else{//使用异步方式request.BeginGetResponse(callback, request);}return HttpStatusCode.OK.ToString();}catch (Exception ex){return ex.Message;}}//httpsprivate static bool CheckValidationResult(object sender,System.Security.Cryptography.X509Certificates.X509Certificate certificate,System.Security.Cryptography.X509Certificates.X509Chain chain,System.Net.Security.SslPolicyErrors errors){ // Always acceptreturn true;}}public class HttpAction : HttpObject{#region Constructorspublic HttpAction(){ }public HttpAction(HttpMethodType mode,string url): this(mode, url, null, null){}public HttpAction(HttpMethodType mode, string url,string bodydata): this(mode, url, null, bodydata){}public HttpAction(HttpMethodType mode, string url, WebHeaderCollection headers):this(mode,url,headers,null){}public HttpAction(HttpMethodType mode, string url,WebHeaderCollection headers ,string bodydata){this.ActionMode = mode;this.Url = url;if (headers != null){this.RequestHeaders = headers;}if (!string.IsNullOrEmpty(bodydata)){this.BodyData = bodydata;}this.Encoding = Encoding.UTF8;RequestHeaders = new WebHeaderCollection();}#endregion private CookieContainer m_Cookies = new CookieContainer();private int m_TimeOut = 3000;private string m_ContentType = "application/x-www-form-urlencoded";private WebHeaderCollection m_ResponseHeaders = new WebHeaderCollection();public HttpMethodType ActionMode{get;set;}public string Url { get; set; }public string QueryText { get; set; }public WebHeaderCollection RequestHeaders { get; set; }public string BodyData { get; set; }public Encoding Encoding { get; set; }/// <summary>/// 设置连接超时时间(ms)/// </summary>public int TimeOut{set { m_TimeOut = value; }get { return m_TimeOut; }}/// <summary>/// 设置/获取CookieContainer/// </summary>public CookieContainer Cookies{get { return m_Cookies; }set { m_Cookies = value; }}/// <summary>/// 设置请求的内容类型/// </summary>public string ContentType{set { m_ContentType = value; }get {return m_ContentType;}}/// <summary>/// 获取或者设置请求返回的HTTP标头/// </summary>public WebHeaderCollection ResponseHeaders{get { return m_ResponseHeaders; }}/// <summary>/// 回调事件(声明了回调函数则使用异步请求)/// </summary>public event EventHandler<ResponseComplatedArgs> ResponseComplate;private void RespCallback(IAsyncResult result){string responseText  ="";HttpStatusCode code = HttpStatusCode.Unused;try{HttpWebRequest request = (HttpWebRequest)result.AsyncState;HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result);this.m_ResponseHeaders = response.Headers;code = response.StatusCode;Encoding encoding = !string.IsNullOrEmpty(response.ContentEncoding) ? Encoding.GetEncoding(response.ContentEncoding) : Encoding.UTF8;Stream stream = response.GetResponseStream();using (StreamReader reader = new StreamReader(stream, encoding)){responseText = reader.ReadToEnd();}}catch (Exception ex){ responseText = ex.Message; }if (this.ResponseComplate != null){this.ResponseComplate(this, new ResponseComplatedArgs(responseText, m_ResponseHeaders, code));}}public void Invoke(){base.Send(this.ActionMode, this.Url, this.QueryText, this.RequestHeaders, this.Encoding.GetBytes(this.BodyData), null, this.Cookies, this.TimeOut, new AsyncCallback(RespCallback));}}public class ResponseComplatedArgs:EventArgs{private string m_Data ="";public string ResponseData{get{return m_Data;}}private WebHeaderCollection m_Headers = new WebHeaderCollection();public WebHeaderCollection ResponseHeaders { get { return m_Headers; } }public HttpStatusCode StatusCode { get; private set; }public ResponseComplatedArgs(){}public ResponseComplatedArgs(string data, WebHeaderCollection headers,HttpStatusCode code){m_Data=data;m_Headers = headers;this.StatusCode = code;}}
}

对开源中国的通信进行实装(未完成)。

using System;
using System.Text;
using System.Net;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;namespace OCMove
{public class OSChina{#region Actionsprivate HttpAction ACTION_LOGIN = new HttpAction(HttpMethodType.POST, "https://www.oschina.net/action/user/hash_login");private HttpAction ACTION_DONGTAN = new HttpAction(HttpMethodType.POST, "http://www.oschina.net/action/tweet/pub");private HttpAction ACTION_REFRESH = new HttpAction(HttpMethodType.GET, "http://www.oschina.net/widgets/check-top-log?last=undefined");private HttpAction ACTION_ANSWER = new HttpAction(HttpMethodType.POST, "http://my.oschina.net/action/tweet/rpl");private HttpAction ACTION_MY_INFO = new HttpAction(HttpMethodType.POST, "http://www.oschina.net/action/api/my_information");#endregion//Actions#region Constructorspublic OSChina(){Init();}public OSChina(string email,string pwd){this.Email = email;this.Pwd = pwd;Init();}private void Init(){ACTION_LOGIN.ResponseComplate += new EventHandler<ResponseComplatedArgs>(ACTION_LOGIN_ResponseComplate);ACTION_MY_INFO.ResponseComplate += new EventHandler<ResponseComplatedArgs>(ACTION_MY_INFO_ResponseComplate);}#endregion //#region Propertiespublic bool HasLogined{get;private set;}public string Email{get;set;}public string Pwd{get;private set;}public int UserCode{get;private set;}public string UserName{get;private set;}public Uri HomePage{get;private set;}public CookieCollection Cookies{get;private set;}public Cookie OscidCookie{get;private set;}#endregion //Properties#region Methods#region LoginActionpublic event EventHandler<ResponseComplatedArgs> LoginComplated;public virtual void Login(){ACTION_LOGIN.RequestHeaders.Add(HttpRequestHeader.Referer, "https://www.oschina.net/home/login?goto_page=http%3A%2F%2Fwww.oschina.net%2F");ACTION_LOGIN.BodyData = string.Format("email={0}&pwd={1}&keep_login=1",this.Email,this.Pwd);ACTION_LOGIN.Cookies = new CookieContainer();ACTION_LOGIN.Invoke();}void ACTION_LOGIN_ResponseComplate(object sender, ResponseComplatedArgs e){if( e.StatusCode == HttpStatusCode.OK){this.HasLogined = true;this.Cookies = ACTION_LOGIN.Cookies.GetCookies(new Uri("https://www.oschina.net"));foreach (Cookie c in this.Cookies){if ("oscid".Equals(c.Name)){this.OscidCookie = c;break;}}}if (this.LoginComplated != null){this.LoginComplated(this,e);}}#endregion //Loginpublic virtual void GetMyInformation(){ACTION_MY_INFO.Cookies = new CookieContainer();ACTION_LOGIN.Cookies.Add( this.OscidCookie);ACTION_MY_INFO.Invoke();}void ACTION_MY_INFO_ResponseComplate(object sender, ResponseComplatedArgs e){}#endregion//Methods}
}

现在进行下简单验证,首先是登录。

string email = "******@gmail.com";string pwd = "****";OSChina osc = new OSChina(email,pwd.ToSHA1());osc.LoginComplated += new EventHandler<ResponseComplatedArgs>(osc_LoginComplated);osc.Login();

转载于:https://my.oschina.net/jickie/blog/149125

http://www.lbrq.cn/news/2777941.html

相关文章:

  • 做p2p网站多少钱aso优化重要吗
  • 做网站需要编码吗百度中心
  • 沈阳德泰诺网站建设公司 概况学营销app哪个更好
  • 建设拍卖网站google安卓版下载
  • 网站制作软件有哪些seo站长工具下载
  • 重庆市建设工程造价信息网爬虫上海牛巨微seo关键词优化
  • 网站建设目标责任深圳seo技术
  • vps可以做wordpress和ssr唐山seo排名
  • 济南高新区 网站建设太原网站快速排名优化
  • 做的最好的相亲网站有哪些独立站谷歌seo
  • 阿里云ace+wordpress网站快速优化排名方法
  • 中山网站建设的价格成人本科报考官网
  • wordpress 飞龙博客 许愿墙常德网站seo
  • 网站开发工程师助理百度百家号注册
  • 企业手机版网站百度网盘电脑版下载
  • 兰州做网站优化短视频推广公司
  • 做游戏网站赚钱吗seo效果检测步骤
  • 中卫网站推广优化公司seo的中文意思
  • 模板建站优缺点app开发工具
  • 怎么做跨境电商网站关键词搜索方法
  • 网站页脚设计代码百度官网平台
  • 到那里找做网站的兼职广州新闻最新消息今天
  • 如何设计购物网站龙岗网站设计
  • 仪征 网站建设亚马逊关键词优化怎么做
  • 西安紧急通知南京怎样优化关键词排名
  • 做网站开发要具备哪些素质电商网站卷烟订货流程
  • 牛商网建站最大的中文搜索引擎
  • 有没有做古装衣服的网站如何提升网站seo排名
  • 企业网站设计与建设站长工具关键词查询
  • 做普通网站公司吗甘肃seo技术
  • 第三阶段数据-3:数据库脚本生成,备份与还原,分离与附加
  • 基于提示词工程和MCP构建垂直Agent应用
  • 走进数字时代,融入数字生活,构建数字生态
  • 云原生俱乐部-shell知识点归纳(1)
  • react-quill-new富文本编辑器工具栏上传、粘贴截图、拖拽图片将base64改上传服务器再显示
  • 基于 PyTorch 模型训练优化、FastAPI 跨域配置与 Vue 响应式交互的手写数字识别