/// <summary> /// リクエスト前に処理する /// </summary> /// <param name="oSession">セッション情報</param> public static void BeforeRequest(Fiddler.Session oSession) { // ★キャストエラーのチェックテスト //object obj = (Int32)32; //float f = (float)obj; // モンラインのみを対象にする if (!oSession.hostname.StartsWith("monmusugame")) { oSession.Ignore(); return; } }
private void FiddlerApplication_BeforeRequest(Fiddler.Session oSession) { if (int.Parse(upstreamport) != 0) { oSession["X-OverrideGateway"] = "127.0.0.1:" + upstreamport; } if (!oSession.PathAndQuery.StartsWith("/kcsapi/api_")) // 艦これのAPI以外は無視する { oSession.Ignore(); return; } // 戦闘開始のタイミングのずれを防ぐためにバッファする if (oSession.PathAndQuery.EndsWith("api_req_sortie/battle") || oSession.PathAndQuery.EndsWith("api_req_practice/battle")) { oSession.bBufferResponse = true; } }
//本体--------------------------------------------------------------------------------------------------------------------- void FiddlerApplication_AfterSessionComplete(Fiddler.Session oSession) { var path = oSession.PathAndQuery; if (!path.StartsWith("/guild_other/member_list/")) // 団員一覧のAPI以外は無視する { if (path.StartsWith("//guild_other/guild_info")) { guildname(oSession); if (hikoukaidan.check2 == false) { Console.WriteLine("unchi"); show(); } } /*団プロフ通ってない時はスルー? * if(path.Contains(GlobalVar.guildidcheck) == false) * { * oSession.Ignore(); * return; * } */ //非公開の団を探す if (path.StartsWith("/guild_main/content/detail/")) { hikoukai(oSession); } oSession.Ignore(); return; } //コンソールに書く Console.WriteLine(oSession.fullUrl); //セッション情報をjson化して解析 var a = oSession.GetResponseBodyAsString(); Console.WriteLine(a); var test = DynamicJson.Parse(a); int index = 0; //団プロフ→1ページ目に飛ぶことを想定 if (test.current == "1" && GlobalVar.page1 == false && path.Contains(GlobalVar.guildidcheck) == true) { foreach (int x in test.list) { if (int.Parse(test.list[index].level) >= 175) { GlobalVar.over175++; } GlobalVar.totalrank += int.Parse(test.list[index].level); //var r1 = test.list[index].level; //Console.WriteLine(r1); index++; GlobalVar.checker++; GlobalVar.page1 = true; } //intをstringにキャスト string s = GlobalVar.checker.ToString(); writeGuildnum(s + "/" + test.count); } //2ページ目初回のみカウント if (test.current == "2" && GlobalVar.page2 == false && path.Contains(GlobalVar.guildidcheck) == true) { foreach (int x in test.list) { if (int.Parse(test.list[index].level) >= 175) { GlobalVar.over175++; } GlobalVar.totalrank += int.Parse(test.list[index].level); index++; GlobalVar.checker++; GlobalVar.page2 = true; } //intをstringにキャスト string s = GlobalVar.checker.ToString(); writeGuildnum(s + "/" + test.count); } //3ページ目初回時のみカウント if (test.current == "3" && GlobalVar.page3 == false && path.Contains(GlobalVar.guildidcheck) == true) { foreach (int x in test.list) { if (int.Parse(test.list[index].level) >= 175) { GlobalVar.over175++; } GlobalVar.totalrank += int.Parse(test.list[index].level); index++; GlobalVar.checker++; GlobalVar.page3 = true; } //intをstringにキャスト string s = GlobalVar.checker.ToString(); writeGuildnum(s + "/" + test.count); } //GlobalVar.member += index; GlobalVar.member = (int)test.count; //どのページでも団員数さえ満たしているならおっけ //test.countは団員数 if (GlobalVar.checker == test.count && GlobalVar.mainpage == true && path.Contains(GlobalVar.guildidcheck) == true) { Console.WriteLine("kuso"); show(); } //var arrayJson = DynamicJson.Parse(a); //var json = arrayJson.Deserialize<List>(); //var r1 = json.id; // Console.WriteLine(r1); }