Cookies 如何在unity中从网页获取cookie头数据?
我在unity3d和我的网站页面中有注册和登录页面,当我将我的注册或登录数据从unity3d发布到我的网站(magento cms)时,发送到我自己的错误“无法进行必要的数据回放”,在HttpAnalyzer应用程序中看到我的请求后,我发现unity3d无法接受get cookie字符串。登录或注册用户后如何从web获取cookie? 我的unity3d代码:Cookies 如何在unity中从网页获取cookie头数据?,cookies,login,unity3d,Cookies,Login,Unity3d,我在unity3d和我的网站页面中有注册和登录页面,当我将我的注册或登录数据从unity3d发布到我的网站(magento cms)时,发送到我自己的错误“无法进行必要的数据回放”,在HttpAnalyzer应用程序中看到我的请求后,我发现unity3d无法接受get cookie字符串。登录或注册用户后如何从web获取cookie? 我的unity3d代码: var form = new WWWForm(); form.AddField( "SN", SystemInfo.de
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";
}
通常,当您尝试加载的页面进行重定向时,您会得到“不可能进行必要的数据倒带”。我不认为你可以用“跟随重定向”选项统一提出请求
我不知道洋红cms,所以我不能告诉你如何纠正这个问题。
对于cookie的问题,Unity非常简单:您只需截取第一次调用的标题“SET-cookie”,然后在下一次调用中发回带有“cookie”的标题:
#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);
}
#pragma strict
导入System.Collections.Generic;
var-url:String=“”;
var cookie:String=“”;
///接口
私有变量stringToEdit:String=“”;
函数OnGUI(){
如果(url!=“和&GUI.按钮(Rect(10,10200,30),“单击”))
start例程(LoadData());
stringToEdit=GUI.TextArea(Rect(10,50600400),stringToEdit);
}
///调试
函数调试(s:字符串){
stringToEdit+=s+“\n”;
}
函数LoadData():IEnumerator{
调试(url);
变量形式:WWWForm=新的WWWForm();
var-time:String=System.DateTime.Now.Ticks.ToString();
表单.AddField(“时间”,time);
//构造头调用
var headers:Hashtable=form.headers;
如果(cookie!=“”)
标题[“Cookie”]=Cookie;
var www:www=newwww(url、form.data、headers);
产生www;
如果(!www.error){
调试(www.text);
//拿着饼干,留着
如果(www.responseHeaders.ContainsKey('SET-COOKIE')){
变量数据:字符串[]=www.responseHeaders['SET-COOKIE'].Split(“;”[0]);
如果(数据长度>0){
cookie=数据[0];
}
}
}否则
调试(www.error);
//调试
for(变量标题:KeyValuePair.in www.responseHeaders)
调试(header.Key+“”+header.Value);
}