Http Get & Post
C#
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
/*
四川麻将
时间:2017.6.12
作者:阿沐
版本:2.6
*/
namespace util
{
public class Http{
/// <summary>
/// 通过 Get方式 向服务器发送请求
/// </summary>
/// <param name="url">远程服务器 请求路径</param>
/// <param name="parent">MonoBehavior 对象</param>
/// <param name="action">回调函数</param>
public static void doGet(string url, MonoBehaviour parent, MyAction<object> action = null)
{
parent.StartCoroutine(Connect(url, action));
}
/// <summary>
/// 通过 Post方式 向服务器发送请求
/// </summary>
/// <param name="url">远程服务器的 请求地址</param>
/// <param name="parent">MonoBehaviour对象</param>
/// <param name="action">回调函数</param>
/// <param name="form">WWWForm</param>
public static void doPost(string url, MonoBehaviour parent, MyAction<object> action = null,WWWForm form=null)
{
parent.StartCoroutine(Connect(url,action,form));
}
/// <summary>
/// 通过 WWW 方式 连接
/// </summary>
static IEnumerator getLoad(string url,MyAction<object> action, WWWForm form = null)
{
WWW www = form == null ? new WWW(url) : new WWW(url, form);
yield return www;
if (string.IsNullOrEmpty(www.error))
{
if (action != null)
{
action(www.text);
}
}
}
/// <summary>
/// 通过 UnityWebRequest 方式 连接
/// </summary>
static IEnumerator Connect(string url, MyAction<object> action, WWWForm form = null)
{
UnityWebRequest request = null;
if (form == null)
{
request = UnityWebRequest.Get(url);
}
else
{
request = UnityWebRequest.Post(url,form);
}
request.timeout = 30;
yield return request.SendWebRequest();
if (request.isNetworkError)
{
Debug.Log("连接超时");
}
else if (!request.isHttpError)
{
if (action != null)
{
Debug.Log("request.text="+ request.downloadHandler.text);
action(request.downloadHandler.text);
action = null;
}
}
else
{
Debug.Log("连接有误");
}
request = null;
}
}
}
评论