在注册与验证用户信息,以及非即时通信的游戏中,我们可以使用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 资源下载与表单提交的更多相关文章

  1. jQuery Form 表单提交插件----Form 简介,官方文档,官方下载地址

     一.jQuery Form简介 jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地.无侵入地升级HTML表单以支持Ajax.jQuery Form有两个核心方法 -- ajaxF ...

  2. 由于想要实现下载的文件可以进行选择,而不是通过<a>标签写死下载文件的参数,所以一直想要使用JFinal结合ajax实现文件下载,但是ajax实现的文件下载并不能触发浏览器的下载文件弹出框,这里通过模拟表单提交实现同样的效果。

    由于想要实现下载的文件可以进行选择,而不是通过<a>标签写死下载文件的参数,所以一直想要使用JFinal结合ajax实现文件下载(这样的话ajax可以传递不同的参数),但是ajax实现的文 ...

  3. 使用Jquery.form.js ajax表单提交插件弹出下载提示框

    现象: 使用jquery的from做ajax表单提交的时候,后台处理完毕返回json字符串,此时浏览器提示下载一个json文件而不是在success里面继续解析该json对象. 具体的原因: 浏览器兼 ...

  4. 浏览器下载/导出文件 及jQuery表单提交

    1 比如以下按钮, 用于导出文件,如EXCEL文件. <li> <button class="whiteBg btn2" onclick="doExp( ...

  5. 表单提交中get和post方式的区别

    表单提交中get和post方式的区别有5点 1.get是从服务器上获取数据,post是向服务器传送数据. 2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一 ...

  6. jquery插件-表单提交插件-jQuery.Form

    1.介绍 JQuery Form插件是一款强大的Ajax表单提交插件,可以简单方便的实现让我们的表单 由传统的提交方式转换成Ajax无刷新提交! 他提供了两个核心的方法ajaxForm以及ajaxSu ...

  7. jQuery Form 表单提交插件-----formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的 应用

    一.jQuery Form的其他api  1.  formSerialize 将表单序列化成查询串.这个方法将返回一个形如: name1=value1&name2=value2的字符串.是否可 ...

  8. 详解JavaScript中的Url编码/解码,表单提交中网址编码

    本文主要针对URI编解码的相关问题做了介绍,对Url编码中哪些字符需要编码.为什么需要编码做了详细的说明,并对比分析了Javascript 中和 编解码相关的几对函数escape / unescape ...

  9. 20151223jquery学习笔记--Ajax表单提交

    传统的表单提交, 需要多次跳转页面, 极大的消耗资源也缺乏良好的用户体验. 而这款form.js 表单的 Ajax 提交插件将解决这个问题.一. 核心方法官方网站: http://malsup.com ...

随机推荐

  1. C# BackgroundWorker组件学习

    C# BackgroundWorker组件学习  C# BackgroundWorker组件学习 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用Ba ...

  2. CSDN CODE平台,中国版Github简要使用说明

    CSDN CODE平台,中国版Github简要使用说明!(多图慎入)   楼主说 以前一直看到别人在用github发布自己的代码,各种牛逼,各种羡慕嫉妒恨.最后终于受不了了,也去注册了一个,注册到没什 ...

  3. IceMx.Mvc 我的js MVC 框架六、完善植物大战僵尸(向日葵登场)

    有图有真相,废话不多说上图 看到园友的支持很受鼓舞,更觉得应该做下去,虽然自己是个菜鸟,但也应该共享自己的心得,只要有人获益那就是值得的. 我的下载需要csdn论坛的1个积分,之所以不完全免费出去是因 ...

  4. spring redis入门

    小二,上菜!!! 1. 虚拟机上安装redis服务 下载tar包,wget http://download.redis.io/releases/redis-2.8.19.tar.gz. 解压缩,tar ...

  5. 我的TDD实践---UnitTest单元测试

    我的TDD实践---UnitTest单元测试 “我的TDD实践”系列之UnitTest单元测试 写在前面: 我的TDD实践这几篇文章主要是围绕测试驱动开发所展开的,其中涵盖了一小部分测试理论,更多的则 ...

  6. KnockOut文档--模板绑定

    目的 模板绑定使用数据render模板,然后把渲染的结果填充到Dom树中.模板通过重复或嵌套块(通常为您的视图模型数据的函数)用一种简单,方便的方式来建立复杂的UI结构 . 有两种方式使用模板: Na ...

  7. excel==>csv==via phpmyadmin (edit php.ini & my.ini)==> MySQL Database

    正如同标题, 标题的顺序是 先从Excel表单,保存为csv文档. 步骤: 1.这个可以用linux下的libra office打开 abc.xls 2.用libra office 将 abc.xls ...

  8. Ubuntu12.10 下搭建基于KVM-QEMU的虚拟机环境(八)

    Libvirt 是用c写的一个管理虚拟机及其资源(如网络.存储和外设等)的工具库,它不仅支持KVM/QEMU,它还支持xen,Vmware,OpenVZ和VirtualBox等其他HyperVisor ...

  9. bdev文件系统

    文件系统,是对磁盘数据进行组织和管理的一种机制. 可通过装载,以目录和文件的形式向用户层呈现.但,文件和目录其实只是文件系统的前端而已,只是文件系统的用户视图,其本质还在于这样的一个数据结构:inod ...

  10. Linux负载均衡软件LVS之三(配置篇)

    LVS集群有DR.TUN.NAT三种配置模式,可以对www服务.FTP服务.MAIL服务等做负载均衡,下面通过搭建www服务的负载均衡实例,讲述基于DR模式的LVS集群配置. 一. Director ...