예제 #1
0
파일: Fetch.cs 프로젝트: augaria/PGLData
        public string getSeasonPokemonDetail(int battleType)
        {
            string url = "http://3ds.pokemon-gl.com/frontendApi/gbu/getSeasonPokemonDetail";

            AccessHandler db = new AccessHandler(mostUpdated);

            db.createTablePkDetail(battleType);

            for (int i = 0; i < pkIdList.Count; i++)
            {
                string         pkId    = pkIdList[i].ToString();
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method      = "POST";
                request.ContentType = GlobalConstants.CONTENTTYPE;
                request.Referer     = GlobalConstants.REFERER;
                string data = "languageId=2&seasonId=" + curSeasonId + "&battleType=" + battleType + "&timezone=EST&pokemonId=" + pkId + "&displayNumberWaza=20&displayNumberTokusei=3&displayNumberSeikaku=3&displayNumberItem=3&displayNumberLevel=10&displayNumberPokemonIn=1&displayNumberPokemonDown=1&displayNumberPokemonDownWaza=1";
                request.ContentLength = Encoding.ASCII.GetByteCount(data);
                StreamWriter writer = new StreamWriter(request.GetRequestStream(), Encoding.ASCII);
                writer.Write(data);
                writer.Flush();
                writer.Close();
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader    reader   = new StreamReader(response.GetResponseStream(), Encoding.UTF8);

                bool status = JsonParser.seasonPokemonDetail(db, battleType, pkId, reader.ReadToEnd());

                if (!status)
                {
                    bkWorker.ReportProgress(1, "请求精灵编号" + pkId + "数据失败\r\n");
                }
                finished++;
                if (finished % 10 == 0)
                {
                    stopwatch.Stop();
                    TimeSpan timeSpan      = stopwatch.Elapsed;
                    int      secondsRemain = (int)(timeSpan.TotalSeconds * (total - finished) / finished);
                    bkWorker.ReportProgress(0, new int[] { finished *100 / total, secondsRemain });

                    stopwatch.Start();
                }



                reader.Close();
            }
            db.closeDatabase();
            return(generation + " " + GlobalConstants.BATTLENAME[battleType] + "数据更新完成\r\n");
        }