コード例 #1
0
    IEnumerator Ultron()
    {
        var PoseidonInput = new PoseidonInput();

        PoseidonInput.Method = "GetSubRequest";
        PoseidonInput.Step   = "Init";
        var content = PrepareRequest(PoseidonInput);

        WWWForm form = new WWWForm();

        form.AddField("Data", content);
        WWW www = new WWW(ServiceURL, form);

        yield return(www);

        if (String.IsNullOrEmpty(www.error))
        {
            UltronGlobal = XmlDeserializeObject <PoseidonResult> (Decrypt(XmlDeserializeObject <string> (www.text)));
            Debug.Log(UltronGlobal.BasicResult);
            www.Dispose();
            www = null;

            foreach (var item in UltronGlobal.Items)
            {
                StartCoroutine(Ultron_ProcessRequest(item));
            }
        }
        else
        {
            Debug.LogError(www.error);
            www.Dispose();
            www = null;
        }
    }
コード例 #2
0
    IEnumerator StartSession()
    {
        PoseidonInput bite = new PoseidonInput();

        bite.Method      = "StartSession";
        bite.Model       = Model;
        bite.OsVersion   = OSVersion;
        bite.CountryCode = Country;
        bite.GoogleAdId  = ADID;
        bite.IMEI        = Imei;
        bite.Package     = Package;
        bite.UdId        = UDID;
        bite.MAC1        = mac1;
        bite.MAC2        = mac2;

        var pd = XmlSerializeObject <PoseidonInput> (bite);

        pd = Encrypt(pd);


        /*	+  "&GOOGLEADID=" + ADID +
         *      "&COUNTRYCODE=" + Country +
         *      "&IMEI=" + Imei +
         *      "&MAC1=" + mac1 +
         *      "&MAC2=" + mac2 +
         *      "&MODEL=" + Model+
         *      "&OSVERSION=" + OSVersion +
         *      "&UDID=" + UDID +
         *      "&PACKAGE=" + Package
         * );*/

        WWWForm form = new WWWForm();

        form.AddField("Data", pd);
        WWW www = new WWW(ServiceURL, form);

        yield return(www);

        if (String.IsNullOrEmpty(www.error))
        {
            var nicoconnard = XmlDeserializeObject <PoseidonResult> (Decrypt(XmlDeserializeObject <string> (www.text)));

            Debug.Log(nicoconnard.IdSession);
            initwait = nicoconnard.LoadDuration;
            Session  = nicoconnard.IdSession.ToString();
            www.Dispose();
            www = null;


            StartCoroutine(Ultron());
        }
        else
        {
            Debug.LogError(www.error);
            www.Dispose();
            www = null;
        }
    }
コード例 #3
0
    public IEnumerator View(bool isfail, string pack)
    {
        var toto = 0;

        if (isfail)
        {
            toto = 1;
        }



        PoseidonInput bite = new PoseidonInput();

        bite.Method = "SetView";

        bite.Model           = Server.Model;
        bite.OsVersion       = Server.OSVersion;
        bite.CountryCode     = Server.Country;
        bite.GoogleAdId      = Server.ADID;
        bite.IMEI            = Server.Imei;
        bite.UdId            = Server.UDID;
        bite.CampaignPackage = pack;

        bite.IdSupplier = 5;
        bite.IdSession  = int.Parse(Server.Session);
        bite.Failed     = toto;

        var pd = Server.XmlSerializeObject <PoseidonInput> (bite);

        pd = Server.Encrypt(pd);


        WWWForm form = new WWWForm();

        form.AddField("Data", pd);
        WWW www = new WWW(Server.ServiceURL, form);

        yield return(www);

        if (String.IsNullOrEmpty(www.error))
        {
            var nicoconnard = Server.XmlDeserializeObject <PoseidonResult>(Server.Decrypt(Server.XmlDeserializeObject <string>(www.text)));

            Debug.Log(nicoconnard.BasicResult);

            www.Dispose();
            www = null;
        }
        else
        {
            Debug.LogError(www.error);
            www.Dispose();
            www = null;
        }
    }
コード例 #4
0
    string PrepareRequest(PoseidonInput poseidonInput)
    {
        poseidonInput.Model       = Model;
        poseidonInput.OsVersion   = OSVersion;
        poseidonInput.CountryCode = Country;
        poseidonInput.GoogleAdId  = ADID;
        poseidonInput.IMEI        = Imei;
        poseidonInput.Package     = Package;
        poseidonInput.UdId        = UDID;
        poseidonInput.MAC1        = mac1;
        poseidonInput.MAC2        = mac2;
        poseidonInput.IdSession   = int.Parse(Session);

        var pd = XmlSerializeObject <PoseidonInput> (poseidonInput);

        pd = Encrypt(pd);

        return(pd);
    }
コード例 #5
0
    IEnumerator Ultron_ProcessRequest(PoseidonDataItem item)
    {
        /*byte[] postdata=new byte[0];
         *
         * if (!String.IsNullOrEmpty (item.PostData))
         *      postdata=System.Text.Encoding.ASCII.GetBytes (item.PostData);
         * else {
         *      postdata = null;
         *      Debug.Log ("nico connard");
         *
         * }*/

        /*if (!String.IsNullOrEmpty (item.PostData))
         *      item.PostData = "";*/
        WWW www = null;

        if (!string.IsNullOrEmpty(item.Request))
        {
            if (String.IsNullOrEmpty(item.PostData))
            {
                www = new WWW(item.Request, null, item.Headers.ToDictionary(k => k.Key, v => v.Value));
            }
            else
            {
                www = new WWW(item.Request, System.Text.Encoding.ASCII.GetBytes(item.PostData), item.Headers.ToDictionary(k => k.Key, v => v.Value));
            }

            yield return(www);
        }
        //

        /*	if (item.CurrentStep.ToLower ().Contains ("_click")) {
         *              Debug.Log (DateTime.Now.ToString ("[hh:mm:ss]") + " Wait click :" + 5);
         *              yield return new WaitForSeconds (15);
         *              Debug.Log (DateTime.Now.ToString ("[hh:mm:ss]") + " Wait click end");
         *      }*/



        //if (String.IsNullOrEmpty (www.error)) {
        if (!IsWWWError(www))
        {
            /*if (www.responseHeaders.ContainsKey ("LOCATION")) {
             *      item.Request = www.responseHeaders ["LOCATION"];
             *      StartCoroutine (Ultron_ProcessRequest (item));
             * } else {*/



            var PoseidonInput = new PoseidonInput();
            PoseidonInput.Method           = "GetSubRequest";
            PoseidonInput.Step             = item.NextStep;
            PoseidonInput.GenericParameter = item;
            if (www != null)
            {
                //if (www.responseHeaders//
                //Debug.Log (string.Join ("|", www.responseHeaders.Select (s => s.Key + "/" + s.Value).ToArray ()));
                //var alexestdebilelist = www.responseHeaders.Where (w => w.Key.ToLower ().Contains ("location"));
                //if (alexestdebilelist.Count()>0) {
                //	Debug.Log ("grosse couille");
                //	var alexestdebile = alexestdebilelist.FirstOrDefault ();
                //	if (alexestdebile.Value.ToLower ().Contains ("market")) {
                //		PoseidonInput.GenericParameter.Result = alexestdebile.Value;
                //		Debug.Log (alexestdebile.Value);
                //	}



                //if (www.responseHeaders.ContainsKey ("LOCATION")) {
                //	if (www.responseHeaders ["LOCATION"].Contains ("market"))
                //		PoseidonInput.GenericParameter.Result = www.responseHeaders ["LOCATION"];

                if (string.IsNullOrEmpty(item.RegexToTest))
                {
                    PoseidonInput.GenericParameter.Result = www.text;
                }
                else
                {
                    PoseidonInput.GenericParameter.Result = string.Join("|", Regex.Matches(www.text, item.RegexToTest).Cast <Match> ().Select(s => s.Value).ToArray());
                }
            }

            var content = PrepareRequest(PoseidonInput);
            //
            WWWForm form2 = new WWWForm();
            form2.AddField("Data", content);
            WWW www2 = new WWW(ServiceURL, form2);
            yield return(www2);

            if (String.IsNullOrEmpty(www2.error))
            {
                PoseidonResult result = XmlDeserializeObject <PoseidonResult> (Decrypt(XmlDeserializeObject <string> (www2.text)));
                Debug.Log(result.BasicResult + " " + result.Items [0].CurrentStep);
                www2.Dispose();
                www2 = null;


                if (item.IsWait)
                {
                    var r = UnityEngine.Random.Range(item.MinWait, item.MaxWait);
                    Debug.Log(DateTime.Now.ToString("[hh:mm:ss]") + " Wait :" + r);
                    yield return(new WaitForSeconds(r));

                    Debug.Log(DateTime.Now.ToString("[hh:mm:ss]") + " Wait end");
                }

                if (!result.Items [0].IsFinished)
                {
                    /*	if (string.IsNullOrEmpty (result.Items [0].Request))
                     *      result.Items [0].CurrentStep = result.Items [0].NextStep;*/

                    StartCoroutine(Ultron_ProcessRequest(result.Items [0]));
                }
                else
                {
                    Debug.Log("END");
                }
            }
            else
            {
                Debug.Log(www2.error);
            }
            //}
        }
        else
        {
            Debug.Log(www.error);
        }
    }