www.text在android中未显示完整数据 [英] www.text not showing complete data in android
问题描述
我正在使用以下代码从网页获取文本:
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获取与从台式机获取的内容相同的内容.
谢谢.
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浏览器的请求进行伪装.您可以从此处获得您的User-Agent
.
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屋!