WWW 资源下载与表单提交
在注册与验证用户信息,以及非即时通信的游戏中,我们可以使用WWW类使用短链接来完成客户端与服务器数据的通信,今天我们将使用用POST方法来完成的用户注册与登录,在最后介绍下其它资源的加载。
首先使用POST完成注册:
场景中两个InputField用于输入名字与密码,一个Button提交注册。
Button绑定方法如下:
using UnityEngine;
using System.Collections;
using UnityEngine.UI; public class RegisterAndLogin : MonoBehaviour
{
private string registerURL;
private InputField _name;
private InputField _pwd; void Awake()
{
_name = GameObject.Find("Name").GetComponent<InputField>();
_pwd = GameObject.Find("Pwd").GetComponent<InputField>();
registerURL = "http://..../wwwRegister.php";
} public void OnClickRegister ()
{
//定义WWWForm类用于存放POST的字段
WWWForm registerForm = new WWWForm();
//添加对应字段到表单,注意KEY要与服务器上一致
registerForm.AddField("name", _name.text);
registerForm.AddField("password", _pwd.text);
//协程开始注册
StartCoroutine(RegisterFun(registerURL, registerForm));
} IEnumerator RegisterFun(string url, WWWForm form)
{
WWW regi_www = new WWW(url, form);
yield return regi_www;
//得到服务器返回信息
string callBack = regi_www.text.Trim();
//服务器返回 “1”,注册成功
if (callBack.Equals(""))
{
Debug.Log("congratulations! register OK! (call back code:" + callBack + ")");
}
//否则失败
else
{
Debug.Log("register failed! (call back code:" + callBack + ")");
}
}
}
运行场景,可以看到注册成功如下:
重复注册导致失败:
数据库中已经有数据咯:
登录和注意相似,只是需要在服务器上加以判断,并返回信息就行,这里就不写了。
再使用读取个纹理图片的:
void Start()
{
string urlTexture = "https://www.baidu.com/img/bd_logo1.png";
StartCoroutine (LoadTexture(urlTexture));
} //加载一张图片纹理
IEnumerator LoadTexture(string url)
{
WWW www = new WWW (url);
yield return www;
this.renderer.material.mainTexture = www.texture;
}
最后用GET来个读个JSON吧:
服务器上根据请求查询数据后格式化如下:
[{“id”:”1″,”name”:”\u5f6c\u5f6c”,”sex”:”\u5973″,”age”:”19″},
{“id”:”2″,”name”:”\u8d85\u8d85″,”sex”:”\u7537″,”age”:”24″},
{“id”:”8″,”name”:”\u5a01\u5a01″,”sex”:”\u7537″,”age”:”20″}]
脚本代码:
using UnityEngine;
using System.Collections;
using LitJson; public class wwwScript : MonoBehaviour
{
//JSON模板类
public class Person
{
public string id ;
public string name;
public string sex;
public string age;
} void Start ()
{
//通过“?+键值对”指定请求内容
StartCoroutine (LoadText ("http://.../wwwGet.php?tablename=person"));
} IEnumerator LoadText(string url)
{
WWW www = new WWW (url);
yield return www;
Debug.Log ("loaded total data:" + www.text);
//Json处理
Person[] persons = JsonMapper.ToObject <Person[]> (www.text);
foreach (Person item in persons)
{
Debug.Log (item.id + item.name + item.age);
}
}
}
OK咯,相信通过上面的例子,大家一定可以举一反三,应付绝大部分WWW类数据提交与请求的问题了^_^
WWW 资源下载与表单提交的更多相关文章
- jQuery Form 表单提交插件----Form 简介,官方文档,官方下载地址
一.jQuery Form简介 jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地.无侵入地升级HTML表单以支持Ajax.jQuery Form有两个核心方法 -- ajaxF ...
- 由于想要实现下载的文件可以进行选择,而不是通过<a>标签写死下载文件的参数,所以一直想要使用JFinal结合ajax实现文件下载,但是ajax实现的文件下载并不能触发浏览器的下载文件弹出框,这里通过模拟表单提交实现同样的效果。
由于想要实现下载的文件可以进行选择,而不是通过<a>标签写死下载文件的参数,所以一直想要使用JFinal结合ajax实现文件下载(这样的话ajax可以传递不同的参数),但是ajax实现的文 ...
- 使用Jquery.form.js ajax表单提交插件弹出下载提示框
现象: 使用jquery的from做ajax表单提交的时候,后台处理完毕返回json字符串,此时浏览器提示下载一个json文件而不是在success里面继续解析该json对象. 具体的原因: 浏览器兼 ...
- 浏览器下载/导出文件 及jQuery表单提交
1 比如以下按钮, 用于导出文件,如EXCEL文件. <li> <button class="whiteBg btn2" onclick="doExp( ...
- 表单提交中get和post方式的区别
表单提交中get和post方式的区别有5点 1.get是从服务器上获取数据,post是向服务器传送数据. 2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一 ...
- jquery插件-表单提交插件-jQuery.Form
1.介绍 JQuery Form插件是一款强大的Ajax表单提交插件,可以简单方便的实现让我们的表单 由传统的提交方式转换成Ajax无刷新提交! 他提供了两个核心的方法ajaxForm以及ajaxSu ...
- jQuery Form 表单提交插件-----formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的 应用
一.jQuery Form的其他api 1. formSerialize 将表单序列化成查询串.这个方法将返回一个形如: name1=value1&name2=value2的字符串.是否可 ...
- 详解JavaScript中的Url编码/解码,表单提交中网址编码
本文主要针对URI编解码的相关问题做了介绍,对Url编码中哪些字符需要编码.为什么需要编码做了详细的说明,并对比分析了Javascript 中和 编解码相关的几对函数escape / unescape ...
- 20151223jquery学习笔记--Ajax表单提交
传统的表单提交, 需要多次跳转页面, 极大的消耗资源也缺乏良好的用户体验. 而这款form.js 表单的 Ajax 提交插件将解决这个问题.一. 核心方法官方网站: http://malsup.com ...
随机推荐
- wpf中数据绑定(Datacontext)的应用
在winform开发中,我们常用到ado.net进行数据绑定,在编程技术日新月异的今天,这种繁杂的数据绑定方式已不能再适合开发人员,于是微软推出了wpf,更炫的界面美化,更简洁地编写控件,在wpf中使 ...
- iOS蓝牙调用的一般流程
一.服务端(也叫周边设备吧..脑残的翻译) 1.实现类必须遵守协议 CBPeripheralManagerDelegate 2.需要的主要类有: @property(strong,nonatomic) ...
- VirtualBox安装CentOS6.4(32bit)
实验环境 Win7 64bit 目的: 实验VirtualBox安装CentOS6.4(32bit) 下载VirtualBox 地址: http://www.oracle.com/technetwor ...
- 解决WP7的32位图像渐变色色阶问题
做游戏时发现背景图色阶现象严重,想了想会不会是显卡色深问题,于是加了下面一段代码,结果解决这个问题. graphics.PreferredBackBufferFormat = Microsoft.Xn ...
- 什么是LeapMotion
LeapMotion预览——什么是LeapMotion LeapMotion预览 这个就是LeapMotion: 原文转自: LeapMotion预览 LeapMotion 官网:http://l ...
- JIT动态编译器的原理与实现之Interpreter3
JIT动态编译器的原理与实现之Interpreter(解释器)的实现(三) 接下来,就是要实现一个虚拟机了.记得编码高质量的代码中有一条:不要过早地优化你的代码.所以,也本着循序渐进的原则,我将从实现 ...
- PHP之-json转数组,支持多层嵌套json
function json_to_array($str) { if (is_string($str)) $str = json_decode($str); $arr=array(); foreach( ...
- php三中页面跳转方式(header、location、refresh) 乐杨俊
反法三:也是用的比较多的
- (转)Tomcat 配置成https协议
Tomcat 配置成https协议 TomcatXMLServlet 在命令提示符窗口,进入Tomcat目录,执行以下命令: keytool -genkey -alias tomcat -keyal ...
- 使用Freemarker创建word文档
最近做一个项目,本来是直接在网页上查看文本信息,然后给客户直接打印的,但是发现也许是浏览器还是打印机的原因,总之,有个客户打印出来的格式始终与其他的不同,没办法,最后想到了直接将数据库中的信息生成一个 ...