unity 内置的访问Http的类 HttpWebRequest。使用起来很方便,简单的示例如下:
using UnityEngine;
using System.Net;
using System.IO;
using System;
public class HttpWebResquestTool : MonoBehaviour {
//读取链接里的字符串数据
public static string HttpWebResquestString(string url)
{
if(!CheckUrlValid(url))
{
Debug.LogError("url 无效");
return null;
}
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
HttpWebResponse webResponse = (HttpWebResponse)request.GetResponse();
Stream stream = webResponse.GetResponseStream();
StreamReader reader = new StreamReader(stream);
string Data = reader.ReadToEnd();
stream.Close();
reader.Close();
webResponse.Close();
request.Abort();
return Data;
}
/// <summary>
/// 检测URL是否有效
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static bool CheckUrlValid(string url)
{
Uri uriResult;
bool result = Uri.TryCreate(url, UriKind.Absolute, out uriResult);
if(result)
{
uriResult = new Uri(url);
if(uriResult.Scheme == Uri.UriSchemeHttps || uriResult.Scheme == Uri.UriSchemeHttp)
return true;
}
return false;
}
//将字节大小化为字符串 如1024 变为 1KB。
public static string ByteToString(long length)
{
float M = length / 1024.0f / 1024.0f;
if(M > 0.5f)
{
return M.ToString("0.0") + "M";
}
else
{
float kb = length / 1024.0f;
if(kb > 0.5f)
return kb.ToString("0.0") + "KB";
else
return length.ToString() + "B";
}
}
}