结果显示:








using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Spire.Pdf;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace FireFox
{
public partial class Form1 : Form
{
private void Form1_Load(object sender, EventArgs e)
{
if (phone != "" && app != "" && serviceP != "")
{
InitWebBrowser();
if (company == "移动")
{
YD_InitTypeAndMonth();
timer1 = new System.Windows.Forms.Timer();
timer1.Tick += YD_SetFristLoginAccountAndServierCode;
timer1.Interval = 100;
timer1.Enabled = true;
}
else if (company == "电信")
{
timer1 = new System.Windows.Forms.Timer();
timer1.Tick += RedirectIframe;
timer1.Interval = 100;
timer1.Enabled = true;
getHttpRequestData = true;
}
else if (company == "联通")
{
timer1 = new System.Windows.Forms.Timer();
timer1.Tick += GetUNFrames;
timer1.Interval = 100;
timer1.Enabled = true;
getHttpRequestData = true;
}
}
else
{
this.Close();
}
}
//初始化浏览器
private void InitWebBrowser()
{
string url = "";
HttpWebRequest webReq2 = (System.Net.HttpWebRequest)WebRequest.Create("http://apis.juhe.cn/mobile/get?phone=" + phone + "&dtype=&key=d49239e19d88a5de980e4cd00ea3978e");
HttpWebResponse response2 = (HttpWebResponse)webReq2.GetResponse();
StreamReader sr2 = new StreamReader(response2.GetResponseStream(), Encoding.UTF8);
string ret2 = sr2.ReadToEnd();
JToken jo2 = (JToken)JsonConvert.DeserializeObject(ret2);
try
{
company = jo2["result"]["company"].ToString();
region = jo2["result"]["province"].ToString();
}
catch { }
switch (company)
{
case "移动":
url = "https://login.10086.cn/";
break;
case "电信":
url = "https://www.189.cn";
break;
case "联通":
url = "http://www.10010.com";
break;
default:
break;
}
switch (region)
{
case "广西": region = "广西壮族自治区"; break;
case "内蒙古": region = "内蒙古自治区"; break;
case "宁夏": region = "宁夏回族自治区"; break;
case "重庆": region = "重庆直辖市"; break;
case "北京": region = "北京直辖市"; break;
case "上海": region = "上海直辖市"; break;
default: region = region + "省"; break;
}
HttpWebRequest webReq = (System.Net.HttpWebRequest)WebRequest.Create("http://121.199.42.16/VAD/GetIp.aspx?act=get&num=1&time=180&plat=0&re=1&type=2&so=1&ow=2&prov=" + region);
string ipAddress = GetInternetIp();
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string ret = sr.ReadToEnd();
JToken jo = (JToken)JsonConvert.DeserializeObject(ret);
//try
//{
#region 独立cookie的代码
string cookiesName = DateTime.Now.ToString("yyyyMMddHHmmss") + phone + app;
string cookiePath = FilePath + "/papaBug/Cookies/" + cookiesName;
if (!System.IO.Directory.Exists(cookiePath))
System.IO.Directory.CreateDirectory(cookiePath);//检测目录是否存在
Gecko.Xpcom.ProfileDirectory = cookiePath;//绑定cookie目录
conn.NotReadDB("update ydTB set cookie = '" + cookiePath + "' where phone = '" + phone + "' and app = '" + app + "'");
#endregion
Xpcom.Initialize("Firefox");
geckoBrowser = new GeckoWebBrowser() { Dock = DockStyle.Fill }; //创建浏览器实例
this.geckoBrowser.Name = "browser";
geckoBrowser.CreateControl();
panel1.Controls.Add(geckoBrowser);//把浏览器加入到选择夹控件内
GeckoPreferences.User["gfx.font_rendering.graphite.enabled"] = true;//设置偏好:字体
GeckoPreferences.User["privacy.donottrackheader.enabled"] = true;//设置浏览器不被追踪
GeckoPreferences.User["general.useragent.override"] = "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:59.0) Gecko/20100101 Firefox/59.0";
GeckoPreferences.User["intl.accept_languages"] = "zh-CN,zh;q=0.9,en;q=0.8";//不设置的话默认是英文区
#region 设置ip代理
//var ip = jo["data"][0]["IP"].ToString();
//var port = jo["data"][0]["Port"].ToString();
//GeckoPreferences.User["network.proxy.http"] = ip;
//GeckoPreferences.User["network.proxy.http_port"] = int.Parse(port);
//GeckoPreferences.User["network.proxy.type"] = 1;
#endregion
geckoBrowser.Navigate(YYSWEB);
geckoBrowser.UseHttpActivityObserver = true;
geckoBrowser.ObserveHttpModifyRequest += Browser_ObserveHttpModifyRequest;
MyObserver MyObs = new MyObserver();
MyObs.TicketLoadedEvent += MyObs_TicketLoadedEvent;//如何处理捕捉到的response
MyObs.targetUrls = new List<string>() { "detailbillinfojsonp/" + tel, "https://gd.189.cn/service/myhome/" };//添加要拦截的url关键词
ObserverService.AddObserver(MyObs);//添加观察器
//}
//catch { }
}
//模拟浏览器发起请求
void GetHttpRequestData(Gecko.Net.HttpChannel p_HttpChannel)
{
string path = Path.Combine(Environment.CurrentDirectory, "TempText", DateTime.Now.ToString("yyyyMMddHHmmss") + phone + app + ".txt");
string oldurl = p_HttpChannel.OriginalUri.ToString();
string[] forcut = oldurl.Split('?');
string url = forcut[0];
string[] query = forcut[1].Split('&');
string tempUrl = "?callback=" + query[0].Split('=')[1] + "&curCuror=" + query[1].Split('=')[1] + "&step=" + query[2].Split('=')[1] + "&";
AddDataToDictionary(HttpDataDic, "Path", path);
AddDataToDictionary(HttpDataDic, "Url", url + tempUrl);
AddDataToDictionary(HttpDataDic, "Host", p_HttpChannel.GetRequestHeader("Host"));
AddDataToDictionary(HttpDataDic, "Accept", p_HttpChannel.GetRequestHeader("Accept"));
AddDataToDictionary(HttpDataDic, "Accept-Language", p_HttpChannel.GetRequestHeader("Accept-Language"));
AddDataToDictionary(HttpDataDic, "Accept-Encoding", p_HttpChannel.GetRequestHeader("Accept-Encoding"));
AddDataToDictionary(HttpDataDic, "Content-Type", p_HttpChannel.GetRequestHeader("Content-Type"));
AddDataToDictionary(HttpDataDic, "X-Requested-With", p_HttpChannel.GetRequestHeader("X-Requested-With"));
AddDataToDictionary(HttpDataDic, "Connection", p_HttpChannel.GetRequestHeader("Connection"));
AddDataToDictionary(HttpDataDic, "Referer", p_HttpChannel.GetRequestHeader("Referer"));
AddDataToDictionary(HttpDataDic, "Cookie", p_HttpChannel.GetRequestHeader("Cookie"));
timer1.Enabled = false;
timer1 = new System.Windows.Forms.Timer();
timer1.Interval = 500;
timer1.Tick += InsertData_Timer;
timer1.Enabled = true;
}
}
}
string contact = "";
contact+="联系";
contact+= "tel&Wechat" + Convert.toInt32(" 18011819910 ").ToString();
textBox1.text = contact;