WWW 资源下载与表单提交

在注册与验证用户信息,以及非即时通信的游戏中,我们可以使用WWW类使用短链接来完成客户端与服务器数据的通信,今天我们将使用用POST方法来完成的用户注册与登录,在最后介绍下其它资源的加载。

首先使用POST完成注册:
场景中两个InputField用于输入名字与密码,一个Button提交注册。
Button绑定方法如下:

 1 using UnityEngine;
 2 using System.Collections;
 3 using UnityEngine.UI;
 4
 5 public class RegisterAndLogin : MonoBehaviour
 6 {
 7     private string registerURL;
 8     private InputField _name;
 9     private InputField _pwd;
10
11     void Awake()
12     {
13         _name = GameObject.Find("Name").GetComponent<InputField>();
14         _pwd = GameObject.Find("Pwd").GetComponent<InputField>();
15         registerURL = "http://..../wwwRegister.php";
16     }
17
18     public void OnClickRegister ()
19     {
20         //定义WWWForm类用于存放POST的字段
21         WWWForm registerForm = new WWWForm();
22         //添加对应字段到表单,注意KEY要与服务器上一致
23         registerForm.AddField("name", _name.text);
24         registerForm.AddField("password", _pwd.text);
25         //协程开始注册
26         StartCoroutine(RegisterFun(registerURL, registerForm));
27     }
28
29     IEnumerator RegisterFun(string url, WWWForm form)
30     {
31         WWW regi_www = new WWW(url, form);
32         yield return regi_www;
33         //得到服务器返回信息
34         string callBack = regi_www.text.Trim();
35         //服务器返回 “1”,注册成功
36         if (callBack.Equals("1"))
37         {
38             Debug.Log("congratulations! register OK! (call back code:" + callBack + ")");
39         }
40         //否则失败
41         else
42         {
43             Debug.Log("register failed! (call back code:" + callBack + ")");
44         }
45     }
46 }

运行场景,可以看到注册成功如下:

重复注册导致失败:

数据库中已经有数据咯:

登录和注意相似,只是需要在服务器上加以判断,并返回信息就行,这里就不写了。

再使用读取个纹理图片的:

 1 void Start()
 2 {
 3 string urlTexture = "https://www.baidu.com/img/bd_logo1.png";
 4 StartCoroutine (LoadTexture(urlTexture));
 5 }
 6
 7 //加载一张图片纹理
 8 IEnumerator LoadTexture(string url)
 9 {
10 WWW www = new WWW (url);
11 yield return www;
12 this.renderer.material.mainTexture = www.texture;
13 }

最后用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″}]
脚本代码:

 1 using UnityEngine;
 2 using System.Collections;
 3 using LitJson;
 4
 5 public class wwwScript : MonoBehaviour
 6 {
 7     //JSON模板类
 8     public class Person
 9     {
10         public string id ;
11         public string name;
12         public string sex;
13         public string age;
14     }
15
16     void Start ()
17     {
18     //通过“?+键值对”指定请求内容
19     StartCoroutine (LoadText ("http://.../wwwGet.php?tablename=person"));
20     }
21
22     IEnumerator LoadText(string url)
23     {
24         WWW www = new WWW (url);
25         yield return www;
26         Debug.Log ("loaded total data:" + www.text);
27             //Json处理
28         Person[] persons = JsonMapper.ToObject <Person[]> (www.text);
29         foreach (Person item in persons)
30         {
31             Debug.Log (item.id + item.name + item.age);
32         }
33     }
34 }

OK咯,相信通过上面的例子,大家一定可以举一反三,应付绝大部分WWW类数据提交与请求的问题了^_^

时间: 2024-08-27 15:32:24

WWW 资源下载与表单提交的相关文章

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

 一.jQuery Form简介 jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地.无侵入地升级HTML表单以支持Ajax.jQuery Form有两个核心方法 -- ajaxForm() 和 ajaxSubmit(), 它们集合了从控制表单元素到决定如何管理提交进程的功能.另外,插件还包括其他的一些方法: formToArray().formSerialize().fieldSerialize().fieldValue().clearForm().clearFields(

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

现象: 使用jquery的from做ajax表单提交的时候,后台处理完毕返回json字符串,此时浏览器提示下载一个json文件而不是在success里面继续解析该json对象. 具体的原因: 浏览器兼容性的问题.在谷歌和火狐下没这个问题,我用的ie9测试是有这个问题的.具体的详细我参照的该链接: http://zhidao.baidu.com/link?url=uTXondC9ECEfdObEWbq7V2O7-UW_oXtoVcneVqH_Dmj2hUXjM3y6wMFnQYsUupdWC0Tf

struts练习-表单提交

防止表单重复提交练习: 做struts练习之前,首先有一些准备工作要做,那就是建立一个web工程,另外就是导入jar包和配置web.xml 我一般都是将以下jar包一次性导入(,可能一个知识点的练习不需要那么多) 以上jar下载 web.xml中需要添加过滤器: 配置如下内容: 完成以上配置之后,在src下建立struts.xml(当然暂时可以不用)! 下面就可以进行你要做的工作了! 下面的例子是我的防止表单重复提交的练习: 1.发送请求的页面: <%@ page language="ja

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

表单提交中get和post方式的区别有5点 1.get是从服务器上获取数据,post是向服务器传送数据. 2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址.用户看不到这个过程. 3.对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Requ

form的onsubmit事件--表单提交前的验证最佳实现方式

连续2天,在进行form表单包括上传表单的提交操作时,刚开始用struts2自带的上传模式与后台进行交互,但原来的页面是用html做的,不能通过国际化资源来返回后台操作的错误信息于静态的html,之后我又百度了许多ajax异步与后台交互的方法,如ajaxForm,ajaxSubmit,ajaxFileUpload等,用的是心力交瘁,各种错误抛出,然后还尝试easyui的表单提交,还是不成...这一切的目的都是为了实现异步交互,不让当前页面跳转,使用ajax实现文件上传的异步刷新,最后还是死心了,

用python模拟登录(解析cookie + 解析html + 表单提交 + 验证码识别 + excel读写 + 发送邮件)

老婆大人每个月都要上一个网站上去查数据,然后做报表. 为了减轻老婆大人的工作压力,所以我决定做个小程序,减轻我老婆的工作量. 准备工作 1.tesseract-ocr 这个工具用来识别验证码,非常好用. ubuntu上安装: sudo apt-get install tesseract-ocr 非常简单. 2.pytesseract和PIL(pillow) pytesseract用来在python中调用tesseract-ocr,PIL(pillow)用来加载图片,安装方法如下: pip3 in

Android实现表单提交,webapi接收

1.服务端采用的是.net的WEBAPI接口. 2.android多文件上传. 以下为核心代码: 1 package com.example.my.androidupload; 2 3 4 import android.util.Log; 5 6 import java.io.File; 7 import java.io.Serializable; 8 import java.util.Iterator; 9 import java.util.LinkedHashMap; 10 import j

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

1.介绍 JQuery Form插件是一款强大的Ajax表单提交插件,可以简单方便的实现让我们的表单 由传统的提交方式转换成Ajax无刷新提交! 他提供了两个核心的方法ajaxForm以及ajaxSubmit 让我们方便的实现无刷新效果提交表单! http://malsup.com/jquery/form/ https://github.com/malsup这个因该是作者的gitbub,我下载看了一下那个readme文件竟然是 API 2.快速入门 1.引入插件 (方法同jQuery) 2.将表

实现文件上传,以及表单提交成功的回调函数

最近在项目中需要实现图片的上传,并且成功后返回图片上传保存路径,通过查找资料探索研究,实现了项目功能需求,记在这方便自己以后查阅,也为有同样需求的码友分享,功能实现比较简单,如果有好的建议和实现方法,还望多多指教. 主要将实现一下两个功能: 1.使用commons-fileupload实现文件的上传(包括图片): 2.使用jquery-form.js实现表单提交成功的回调函数. 页面设计fileupload.jsp: Html代码   <%@ page language="java&quo