我已经在
answers.unity3d问了,但由于没有回应,我也会在这方面问
我无法在Windows Phone 8和Windows RT 8.1上的WWW对象上检索到响应的http状态(在IOS / Android上可以).
www.responseHeader [“STATUS”]不存在,隐藏字段_responseHeaderString不包含第一行
HTTP/1.1 200 OK
responseHeaderString:
Server: Nginx Date: Wed,21 Oct 2015 07:44:36 GMT Last-Modified: Mon,07 Sep 2015 11:43:46 GMT Connection: keep-alive Expires: Fri,20 Nov 2015 07:44:36 GMT Cache-Control: max-age=2592000 Cache-Control: public
responseHeader:
{ "SERVER" : "Nginx" "DATE" : "Wed,21 Oct 2015 07:44:36 GMT" "LAST-MODIFIED": "Mon,07 Sep 2015 11:43:46 GMT" "CONNECTION" : "keep-alive" "EXPIRES" : "Fri,20 Nov 2015 07:44:36 GMT" "CACHE-CONTROL": "public" }
要重现的示例代码:(在一个空的新项目上测试)
WWW www = new WWW("http://www.google.com"); yield return www; Debug.Log("Google Status : " + www.responseHeaders.ContainsKey("STATUS")); // False Debug.Log(www.text); // <doctype ... Debug.Log(www.responseHeaders["STATUS"]); // KeyError
我错过了什么,还是有人可以将这个确认为一个bug?
编辑:
仍然无法使用最新的5.3检索http状态
您的网络服务器可能会响应每个设备的不同(意外)响应.由于各种原因,例如用户代理字符串,这可能导致WWW类不能获得STATUS.
首先,我将安装代理,以便您可以准确地看到手机发送的内容以及服务器原始响应的内容. Charles Proxy(mac / windows)或Fiddler(windows)都很棒.
if (num++ == 0 && text.StartsWith("HTTP")) { dictionary["STATUS"] = text; }
参考:https://github.com/MattRix/UnityDecompiled/blob/master/UnityEngine/UnityEngine/WWW.cs#L483
从代理,应该清楚发生了什么.如果没有,请在此处张贴请求和回复(原始).