Frage

Ich habe Registrier- und Login -Seite in Unity3D und meiner Website -Seite, wenn ich meine Register- oder Anmeldedaten von Unity3D auf meine Website (Magento CMS) veröffentliche In der httpanalyzer -Anwendung finde ich Unity3d nicht akzeptieren, dass er Cookie -String erhalten kann. Wie kann Cookie nach Anmeldung oder Registrierung von Benutzern aus dem Web bringen? Mein Unity3D -Code:

    var form = new WWWForm();
    form.AddField( "SN", SystemInfo.deviceUniqueIdentifier.ToString());
    form.AddField( "UserName ", UserName );
    form.AddField( "year",Year );
    form.AddField( "month", Month );
    form.AddField( "day", Day );
    form.AddField( "dob",Year+"/"+Month+"/"+Day );
    form.AddField( "gender", Gender );
    form.AddField( "password", Pass );
    // Create a download object
    var download = new WWW(URL, form);
    // Wait until the download is done
    yield download;
    // show the Results
    Debug.Log(download.text);   
    if(download.error != null)
    {
        Debug.Log("Err :"+download.error);
        Flag = "1"; 
    }
War es hilfreich?

Lösung

Normalerweise erhalten Sie "notwendige Datenrückspulen waren nicht möglich", wenn die Seite, die Sie zu laden versuchen, eine Umleitung vorzunehmen. Ich glaube nicht, dass Sie eine Anfrage in Einheit mit einer Option "Folge Redirect" stellen können.

Ich kenne Magenta CMS nicht, daher kann ich Ihnen nicht sagen, wie Sie dieses Problem beheben können. Für Ihr Problem des Cookies ist das in Einheit ziemlich einfach: Sie müssen den Header "Set-Cookie" von einem ersten Anruf nur abfangen und dann in Ihren nächsten Anrufen einen Kopfball mit "Cookie" zurücksenden:

#pragma strict

import System.Collections.Generic;

var url:String = "";
var cookie:String = "";

/// interface
private var stringToEdit:String = "";
function OnGUI(){
    if (url!="" && GUI.Button(Rect(10,10,200,30),"Click"))
        StartCoroutine(LoadData());

    stringToEdit = GUI.TextArea (Rect (10, 50, 600, 400), stringToEdit);
}
/// debug
function Debug(s:String){
    stringToEdit += s+"\n";
}

function LoadData():IEnumerator{
    Debug(url);

    var form : WWWForm = new WWWForm();

    var time:String     = System.DateTime.Now.Ticks.ToString();
    form.AddField("time", time);

    // construct your header calls
    var headers : Hashtable = form.headers;
    if(cookie!="")
        headers["Cookie"] = cookie;

    var www : WWW = new WWW(url, form.data, headers);

    yield www;

    if(!www.error){
        Debug(www.text);

        // get the cookie and keep it
        if(www.responseHeaders.ContainsKey('SET-COOKIE')){
            var data:String[] = www.responseHeaders['SET-COOKIE'].Split(";"[0]);
            if(data.length>0){
                cookie = data[0];
            }
        }

    }else
        Debug(www.error);
    // debug
    for(var header:KeyValuePair.<String, String> in www.responseHeaders)
        Debug(header.Key+" "+header.Value);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top