c# - www.text 未在 android 中显示完整数据

标签 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 获取的内容相同的内容。

谢谢。

最佳答案

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

GET 请求:

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 .

关于c# - www.text 未在 android 中显示完整数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41347749/

相关文章:

javascript - 统一: AddExplosionForce to 2D

android - 为什么只有最新的订阅者在使用 Kotlin 和 RxMVP 的 Android 上的 RxJava 中获得 onNext 事件

c# - 如何在数组中存储游戏对象 Unity3d

c# - 无法使用 jquery 访问 C# 方法

c# - WPF/C# : Creating a button style: Text + Image

android - Android ViewPager 中错误的位置值

android - Idea Intellij 截图

android - Vuforia SDK Android Studio VS Vuforia Unity

c# - 如何将音频文件添加到我的表单?

c# - 用于单元测试 .NET 核心 MVC Controller 的模拟 HttpContext?