www.text 未在 android 中显示完整数据 [英] www.text not showing complete data in android

查看:20
本文介绍了www.text 未在 android 中显示完整数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用以下代码从网页中获取文本:

 私有 IEnumerator FetchText() {WWW www = new WWW(URL);收益率返回 www;如果(www.error == null){myText.text = www.text.Length.ToString();}...}

当我在 Unity 中运行它时,我得到 185616 个字符的长字符串.但是当我在 android 设备上运行它时,我只得到 47133 个字符.是因为该网页在 Windows 和 Android 中的行为不同吗?如果是,我如何从 android 获取与从台式机获取相同的内容.

谢谢.

解决方案

tier1 的答案的实施.>

POST 请求:

私有 IEnumerator FetchText(){字符串 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";字典<字符串,字符串>headers = new Dictionary();headers.Add("User-Agent", userAgent);字符串 postData = "测试";字符串数据=数据="+ postData;WWW www = new WWW(URL, Encoding.UTF8.GetBytes(data), headers);收益率返回 www;if (string.IsNullOrEmpty(www.error)){//myText.text = www.text.Length.ToString();Debug.Log("得到:" + www.text);}别的{Debug.Log("错误:" + www.error);}}

GET 请求:

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

私有 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";字符串 URL = "www.yahoo.com";字典<字符串,字符串>headers = new Dictionary();headers.Add("User-Agent", userAgent);WWW www = new WWW(URL, null, headers);收益率返回 www;if (string.IsNullOrEmpty(www.error)){//myText.text = www.text.Length.ToString();Debug.Log("得到:" + www.text);}别的{Debug.Log("错误:" + www.error);}}

根据您的原始代码,您需要 GET 请求方法.这将伪装成来自 Chrome 浏览器的请求.您可以从此处获取您的用户代理.

I'm using the following code to get the text from a web page:

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

        yield return www;

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

When I run this in Unity, I get 185616 characters long string. But when I run this in android device, I get only 47133 characters. Is it because that web page behaves differently in Windows and Android? If yes, how can I fetch the same content from android as I'd be getting from desktop PC.

Thanks.

解决方案

Implementation of tier1's answer.

POST Request:

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);
    }
}

GET Request:

Setting the WWW byte[] postData parameter to null will make it a GET request.

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);
    }
}

According your original code, you need the GET request method. This will masquerade as request from a Chrome browser. You can get your User-Agent from here.

这篇关于www.text 未在 android 中显示完整数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆