Unity3D:HTTP请求模块
先上接口
using System;
using System.Collections.Generic;
using UnityEngine;namespace YDB.Http
{public interface IHttp{/// <summary>/// Get/// </summary>/// <param name="callback">回调</param>/// <param name="url">地址</param>void Get(Action<string> callback,string url);/// <summary>/// Get/// </summary>/// <param name="callback">回调</param>/// <param name="url">地址</param>void Get(Action<byte[]> callback, string url);/// <summary>/// Get/// </summary>/// <param name="callback">回调</param>/// <param name="url">地址</param>void Get(Action<Texture> callback, string url);/// <summary>/// Post/// </summary>/// <param name="parameters">参数</param>/// <param name="url">地址</param>void Post(Dictionary<string, string> parameters, string url);}
}
接口具体实现
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;namespace YDB.Http
{public class Http : MonoBehaviour,IHttp{public void Get(Action<string> callback, string url){if(callback == null){Debug.LogWarning("回调为空,请求了也没屁用");}UnityWebRequest unityWebRequest = UnityWebRequest.Get(url);StartCoroutine(StartGet(callback,unityWebRequest));}public void Get(Action<byte[]> callback, string url){if (callback == null){Debug.LogWarning("回调为空,请求了也没屁用");}UnityWebRequest unityWebRequest = UnityWebRequest.Get(url);StartCoroutine(StartGet(callback, unityWebRequest));}public void Get(Action<Texture> callback, string url){if (callback == null){Debug.LogWarning("回调为空,请求了也没屁用");}UnityWebRequest unityWebRequest = UnityWebRequest.Get(url);DownloadHandlerTexture downloadHandler = new DownloadHandlerTexture();unityWebRequest.downloadHandler = downloadHandler;StartCoroutine(StartGet(callback, unityWebRequest));}public void Post(Dictionary<string, string> parameters, string url){UnityWebRequest unityWebRequest = UnityWebRequest.Post(url, parameters);StartCoroutine(StartPost(unityWebRequest));}private IEnumerator StartPost(UnityWebRequest uwr){yield return uwr.SendWebRequest();if (uwr.isHttpError || uwr.isNetworkError){Debug.LogError(uwr.error);}else{Debug.Log("Post请求成功");}}/// <summary>/// 异步网络请求/// </summary>/// <typeparam name="T">回调类型</typeparam>/// <param name="callback">回调</param>/// <param name="uwr">请求参数</param>/// <returns></returns>private IEnumerator StartGet<T>(Action<T> callback, UnityWebRequest uwr) where T : class{yield return uwr.SendWebRequest();if (uwr.isHttpError || uwr.isNetworkError){Debug.LogError(uwr.error);}else{Debug.Log("Get请求成功");Type type = typeof(T);if (type == typeof(string)){string text = uwr.downloadHandler.text;callback(text as T);}else if (type == typeof(byte[])){byte[] packet = uwr.downloadHandler.data;callback(packet as T);}else if (type == typeof(Texture)){//特殊的文件类型,通过不同的Handler来下载DownloadHandlerTexture downloadHandler = uwr.downloadHandler as DownloadHandlerTexture;Texture texture = downloadHandler.texture;callback(texture as T);}}}}
}
Unity3D:HTTP请求模块相关推荐
- vue-resource网络请求模块(安装教程) - cmd篇
vue-resource网络请求模块(安装教程) - cmd篇 安装vue-resource 网络请求模块,用于依赖后端服务器的vuejs项目进行对服务器端数据的请求或跨域请求. cmd安装步骤: 先 ...
- network/request.js网络请求模块封装
网络请求模块封装 import axios from "axios"; //引入axios模块export function request(config) {//1,创建axio ...
- Vue学习笔记之18-网络请求模块的封装
常见的网络请求模块, 以及它们的优缺点对比 传统Ajax请求 缺点: 配置和调用方式等非常混乱 真实开发中真的很少直接使用, 而是使用Jquery-Ajax Jquery-ajax 相对于传统的Aja ...
- Python爬虫学习笔记-第二课(网络请求模块上)
网络请求模块上 1. 相关概念介绍 1.1 向网站发起请求的方式: 1.2 url-全球统一资源定位符 1.3 User-Agent 用户代理 1.4 referer 1.5 状态码 1.6 抓包工具 ...
- 一木.溪桥学爬虫-03:请求模块urllib、 urllib.request、urllib.parse.urlencode、urllib.parse.quote(str)、.unquote()
一木.溪桥 在Logic Education跟Jerry学爬虫 07期:Python 爬虫 一木.溪桥学爬虫-03:请求模块urllib. urllib.request.urllib.parse.ur ...
- Python爬虫01—请求模块
请求模块 一.基本概念 1.请求方法 1.1 GET 1.2 POST 2.Refer 3.状态码 二.获取图片 1.requests模块 2.request模块 三.获取网页源码 urllib.re ...
- 搭建前端网络请求模块
HTTP 超文本传输协议 发送一个请求查询用户日志记录 请求 响应 请求方式有哪些? 响应码有哪些? 客户端请求后,服务器响应携带的 https 证书 常用加密算法 快速搭建 Vue 普通 H5 项目 ...
- Python爬虫学习笔记-第三课(网络请求模块下)
网络请求模块下 1. urllib-get案例 1.1 代码需求:爬取贴吧数据 1.2 代码思路 1.3 代码实现 2. urllib-post案例 3. requests模块简介 3.1 get案例 ...
- 【python爬虫学习篇】请求模块urllib3
目录 1.urllib3 1.1,发送网络请求 1.1.2,GET请求 1.1.3,POST请求 1.1.4,重试请求和处理响应内容 1.1.5,JSON信息 1.2,复杂请求的发送 1.2.1,设置 ...
- python实现get请求 模块_python爬虫 基于requests模块发起ajax的get请求实现解析
基于requests模块发起ajax的get请求 需求:爬取豆瓣电影分类排行榜 https://movie.douban.com/中的电影详情数据 用抓包工具捉取 使用ajax加载页面的请求 鼠标往下 ...
最新文章
- [android] 从gallery获取图片
- C#数组按值和按引用传递数组区别
- NIO详解(四):NIO编程
- 做俯卧撑的10个技巧
- [pymongo] pymongo.errors.CursorNotFound Exception
- [Java基础]反射获取成员方法并使用
- jquery官网打不开难以下载,不妨试试webjars
- 穷人为什么会越穷,穷的时候以下三个事情不能干
- dedecms 模型新添加的自定义字段设置样式
- c语言在线测试题,C语言测试题
- ansible一键部署rsync服务剧本
- servlet 单例问题
- 系统设计-HIPO图
- 常用URLscheme整理+不同场景下打开URLscheme的方法
- php模板开发教程,discuz模板开发教程系列教程整理
- matlab 切点投资组合 程序,MATLAB证券投资组合分析
- linux dd 克隆很慢,使用dd命令进行SD卡克隆
- 资深老狐一句感叹:白学了,猫猫究竟有什么魔力,一小时等于十年功?
- Linux服务详解(主要基于RedHat系的及Centos默认服务详解)(综合整理)
- 【ARM嵌入式】实验报告一 熟悉RealView MDK集成开发环境的使用
热门文章
- jsp+servlet+mysql 学生选课系统
- c++win32项目 如何显示后再删除一个绘图_sai绘图软件中文版
- c语言餐厅饭卡管理系统,饭卡管理系统
- stm32f103c8t6单片机驱动台达伺服电机
- 2018 Multi-University Training Contest 10 hdu 6432 Problem G. Cyclic(oeis题)
- linux下socket调试,linux下socket调试
- WooCommerce税收入门指南,第2部分
- matlab最优化工具箱下载,matlab emd工具箱下载
- visio图形包解压
- 用户故事与敏捷方法笔记---Scrum与用户故事