www.text没有显示android中的完整数据

时间:2016-12-27 15:20:20

标签: c# android unity3d web

我使用以下代码从网页获取文字:

    private IEnumerator FetchText() {
        WWW www = new WWW(URL);

        yield return www;

        if(www.error == null) {
            myText.text = www.text.Length.ToString();
        }
        ...
    }

当我在Unity中运行时,我得到185616个字符长字符串。但是当我在Android设备中运行它时,我只得到47133个字符。是因为该网页在Windows和Android中的行为有所不同吗?如果是的话,我如何从Android获取相同的内容,因为我将从桌面PC获取。

感谢。

2 个答案:

答案 0 :(得分:2)

您尝试提取的网址可能是检测到您的用户代理并将您发送到某个回复体较小的移动网站。

我对您正在使用的库不是很熟悉,但您可能想尝试手动设置User-Agent标题。

例如:

  

User-Agent:Mozilla / 5.0(Windows NT 6.3; Trident / 7.0; rv:11.0),如Gecko

答案 1 :(得分:2)

tier1答案的实施。

POST请求

private IEnumerator FetchText()
{
    string URL = "www.yahoo.com";
    string userAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36";

    Dictionary<string, string> headers = new Dictionary<string, string>();
    headers.Add("User-Agent", userAgent);
    string postData = "test";
    string data = "data=" + postData;

    WWW www = new WWW(URL, Encoding.UTF8.GetBytes(data), headers);
    yield return www;


    if (string.IsNullOrEmpty(www.error))
    {
        //myText.text = www.text.Length.ToString();
        Debug.Log("Got: " + www.text);
    }
    else
    {
        Debug.Log("Error: " + www.error);
    }
}

获取请求

WWW byte[] postData参数设置为null将使其成为GET请求。

private IEnumerator FetchText()
{

    string userAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36";
    string URL = "www.yahoo.com";

    Dictionary<string, string> headers = new Dictionary<string, string>();
    headers.Add("User-Agent", userAgent);

    WWW www = new WWW(URL, null, headers);
    yield return www;


    if (string.IsNullOrEmpty(www.error))
    {
        //myText.text = www.text.Length.ToString();
        Debug.Log("Got: " + www.text);
    }
    else
    {
        Debug.Log("Error: " + www.error);
    }
}

根据您的原始代码,您需要GET请求方法。这将伪装成Chrome浏览器的请求。您可以从here获取User-Agent