返回
代码获取网页信息 | Unity中使用代码抓取URL链接网页的标题、元描述等信息
Android
2023-12-21 06:36:50
实战篇 | 教你如何在Unity中通过代码获取URL链接网页的标题等各种信息✨
现在我们来学习如何通过C#代码来获取URL链接网页的标题等信息。
前言
在Unity中使用URL连接Web网页,我们有几种常见的方式:
- 使用WWW类。
- 使用WebRequest类。
- 使用第三方库,例如UniWeb。
一、WWW类
WWW类是Unity提供的一个用于发送HTTP请求和获取网页信息的类。它使用简单,但性能可能较低。
以下是如何使用WWW类来获取URL链接网页的
using UnityEngine;
using System.Collections;
public class GetWebPageTitle : MonoBehaviour
{
public string url = "https://www.google.com";
void Start()
{
StartCoroutine(GetWebPageTitleCoroutine());
}
IEnumerator GetWebPageTitleCoroutine()
{
WWW www = new WWW(url);
yield return www;
if (www.error == null)
{
string html = www.text;
string title = GetTitleFromHtml(html);
Debug.Log(title);
}
else
{
Debug.Log(www.error);
}
}
string GetTitleFromHtml(string html)
{
string title = string.Empty;
int startIndex = html.IndexOf("");
if (startIndex != -1 && endIndex != -1)
{
title = html.Substring(startIndex + 7, endIndex - startIndex - 7);
}
return title;
}
}
二、WebRequest类
WebRequest类是.NET Framework提供的一个用于发送HTTP请求和获取网页信息的类。它比WWW类更灵活,但使用起来也更复杂。
以下是如何使用WebRequest类来获取URL链接网页的
using UnityEngine;
using System.Collections;
using System.Net;
public class GetWebPageTitle : MonoBehaviour
{
public string url = "https://www.google.com";
void Start()
{
StartCoroutine(GetWebPageTitleCoroutine());
}
IEnumerator GetWebPageTitleCoroutine()
{
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string html = reader.ReadToEnd();
reader.Close();
response.Close();
string title = GetTitleFromHtml(html);
Debug.Log(title);
}
string GetTitleFromHtml(string html)
{
string title = string.Empty;
int startIndex = html.IndexOf("");
if (startIndex != -1 && endIndex != -1)
{
title = html.Substring(startIndex + 7, endIndex - startIndex - 7);
}
return title;
}
}
三、第三方库
有许多第三方库可以帮助我们在Unity中获取URL链接网页的信息。这些库通常使用起来更简单,而且性能也更好。
以下是一些常用的第三方库:
- UniWeb
- RestSharp
- SuperSocket
结语
通过使用WWW类、WebRequest类或第三方库,我们可以轻松地在Unity中获取URL链接网页的标题等信息。
希望本教程对您有所帮助。如果您有任何问题,请随时提出。