Windows phone 8 WWW.responseHeader[“STATUS”不存在

Windows phone 8 WWW.responseHeader[“STATUS”不存在,windows-phone-8,unity3d,windows-rt,Windows Phone 8,Unity3d,Windows Rt,我已经问过了,但由于没有回应,我也会问下去 我无法在Windows Phone 8和Windows RT 8.1上检索对象响应的http状态(而在IOS/Android上则可以) www.responseHeader[“STATUS”]不存在,并且隐藏字段\u responseHeaderString不包含第一行 HTTP/1.1200ok 响应headerString: Server: nginx Date: Wed, 21 Oct 2015 07:44:36 GMT Last-Modifi

我已经问过了,但由于没有回应,我也会问下去

我无法在Windows Phone 8和Windows RT 8.1上检索对象响应的http状态(而在IOS/Android上则可以)

www.responseHeader[“STATUS”]
不存在,并且隐藏字段
\u responseHeaderString
不包含第一行

HTTP/1.1200ok


响应headerString

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
负责人

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
{
“服务器”:“nginx”
“日期”:“2015年10月21日星期三07:44:36 GMT”
“最后修改”:“2015年9月7日星期一11:43:46 GMT”
“连接”:“保持活动”
“到期”:“2015年11月20日星期五07:44:36 GMT”
“缓存控制”:“公共”
}

要复制的示例代码:(在空的新项目上测试)

WWW=newwww(“http://www.google.com");
收益率;
Debug.Log(“谷歌状态:+www.responseHeaders.ContainsKey(“状态”);//假的

Debug.Log(www.text);// 您的网络服务器可能会对每个设备做出不同(意外)的响应。由于各种原因,例如用户代理字符串,这可能导致WWW类无法获取状态

首先,我将安装一个代理,这样您就可以准确地看到手机发送的内容以及服务器的原始响应。(mac/windows)或(windows)都很棒

下面是Unity WWW类用于生成状态的实际代码:

        if (num++ == 0 && text.StartsWith("HTTP"))
        {
            dictionary["STATUS"] = text;
        }
参考:


从代理来看,应该清楚发生了什么。如果没有,请在此处发布请求和响应(原始)。

在查找状态标题之前,请尝试阅读www.error

// Construct the response object
string error = www.error;
if (error == null) {
    if (www.responseHeaders.ContainsKey("STATUS")) {
        string [] status=www.responseHeaders["STATUS"].Split(' ');
        if (status.Length>2 && status[2] != "OK") {
            error = www.responseHeaders["STATUS"];
        }
    }
}

只是为了验证-这是一个HTTP(S)请求,而不是
文件://
或其他协议?标题会建议使用HTTP,但这些东西在某些环境中往往会被模拟,我以前在android上使用
文件时确实有这种行为://
协议。下载文件是一个简单的
HTTP
请求,所以我需要304/200信息:)您的www对象。错误返回时没有任何错误吗?@MXD否,
www.error
null
。如果你想试试的话,Unity 5.2.2昨天发布了。这段代码实际上使用
responseHeaderString
作为
text
,并且
responseHeaderString
不包含HTTP状态。因此,标头结构可能无法满足此条件,我将在可以使用wireshark时重新检查,但我确信每个设备的响应都是相同的,并且符合HTTP。Unity会干扰响应,因此
responseHeaderString
可能无法真实指示服务器正在发送的内容。通过wireshark捕获,它是否作为代理运行,并且您的windows phone设置为通过它进行通信?你能共享服务器的URL吗?我正在使用IMac,所以我可以像代理一样将wifi共享到设备上。无法共享服务器的URL,我尝试用一个公共URL和简单的代码来创建这个bug。好的,太好了。还可以尝试使用以下方法获取您的URL:(它可能会显示不正确的内容)