WWWForm使用demo

转自:http://www.cnblogs.com/leng-yuye/archive/2012/08/01/2617971.html


主要用到了unity内置的WWW类和WWWForm类,运用WWWForm.AddField(String fieldName, String value)方法通过post的表单提交方式把表单参数传递给服务器端的逻辑业务层。(我用的是JSP,在逻辑层上request.getParameter(fiedlName);就能得到AddField中传递的参数,接下来就是服务器的逻辑处理了。PHP貌似是$_POST[fieldName]吧,好久没写过php了,ASP.NET不着咋写...)

客户端的demo效果图:



imei是手机的唯一识别id,用imei表示可能不恰当...
客户端代码:

View Code 
 using UnityEngine;
 using System.Collections;
 using System.Text.RegularExpressions;
 
 public class Client : MonoBehaviour
 {
     WWW www;
     WWWForm form;
     string url;
 
     string username_label = "username:";
     string username_input = "";
 
     string password_label = "password:";
     string password_input = "";
 
     string password_label2 = "password2:";
     string password_input2 = "";
 
     string email_label = "email:";
     string email_input = "";
 
     string callback_label = "result:";
     string callback_label2 = "";
     
     void OnStart()
     {
             
     }
     
     void OnGUI()
     {
         GUI.Label(new Rect(0, 0, 80, 20), username_label);
         username_input = GUI.TextField(new Rect(80, 0, 100, 20), username_input);
 
         GUI.Label(new Rect(0, 30, 80, 20), password_label);
         password_input = GUI.TextField(new Rect(80, 30, 100, 20), password_input);
 
         GUI.Label(new Rect(0, 60, 80, 20), password_label2);
         password_input2 = GUI.TextField(new Rect(80, 60, 100, 20), password_input2);
 
         GUI.Label(new Rect(0, 90, 80, 20), email_label);
         email_input = GUI.TextField(new Rect(80, 90, 100, 20), email_input);
 
         GUI.Label(new Rect(0, 160, 80, 20), callback_label);
         callback_label2 = GUI.TextField(new Rect(50, 160, 160, 20), callback_label2);
 
         if (GUI.Button(new Rect(0, 120, 100, 30), "Login"))
         {
             form = new WWWForm();
             form.AddField("name", username_input);
             form.AddField("password", password_input);
             string url = "http://192.168.100.98:8084/ddt/UserLogin.jsp";
             www = new WWW(url, form);
             StartCoroutine(WaitForRequestUserNameLogin(www));
         }
 
         if (GUI.Button(new Rect(120, 120, 100, 30), "Register"))
         {
             form = new WWWForm();
             //form.AddField("id", "phone_id_str");
             form.AddField("id", SystemInfo.deviceUniqueIdentifier);
             form.AddField("name", username_input);
             form.AddField("password", password_input);
             form.AddField("retry_password", password_input2);
             form.AddField("email", email_input);
             url = "http://192.168.100.98:8084/ddt/registerUser.jsp";
             www = new WWW(url, form);
             StartCoroutine(WaitForRequestRegister(www));
         }
 
         if (GUI.Button(new Rect(240, 120, 100, 30), "non-reg to play"))
         {
             form = new WWWForm();
             form.AddField("id", SystemInfo.deviceUniqueIdentifier);
             //form.AddField("name", username_input);
             //form.AddField("password", password_input);
             //form.AddField("retry_password", password_input2);
             //form.AddField("email", email_input);
             url = "http://192.168.100.98:8084/ddt/NonRegPlay.jsp";
             www = new WWW(url, form);
             StartCoroutine(WaitForRequestPhoneIdLogin(www));
         }
 
         if (GUI.Button(new Rect(200, 0, 130, 20), "Check UserName"))
         {
             form = new WWWForm();
             form.AddField("name", username_input);
             Debug.Log("username_input...." + username_input);
             url = "http://192.168.100.98:8084/ddt/CheckUserIsExist.jsp";
             www = new WWW(url, form);
             StartCoroutine(WaitForRequestCheck(www));
         }
 
         if (GUI.Button(new Rect(0, 200, 50, 30), "IMEI"))
         {
             callback_label2 = SystemInfo.deviceUniqueIdentifier;
         }
 
     }
 
     IEnumerator WaitForRequestUserNameLogin(WWW www)
     {
         yield return www;
         if (www.error != null)
             Debug.Log("fail to request..." + www.error);
         else
         {
             if (www.isDone)
             {
                 string ex = @"<span>([\S\s\t]*?)</span>";
                 Match m = Regex.Match(www.data, ex);
                 if (m.Success)
                 {
                     string result = m.Value;
                     result = result.Substring(result.IndexOf(">") + 1, result.LastIndexOf("<") - result.IndexOf(">") - 1).Trim();
                     if (result == "success")
                     {
                         callback_label2 = "登录成功";
                     }
                     else if (result == "empty")
                     {
                         callback_label2 = "用户名或密码为空";
                     }
                     else if (result == "fail")
                     {
                         callback_label2 = "找不到指定用户";
                     }
                     else
                     {
                         callback_label2 = "未知错误";
                     }
                 }
             }
         }
     }
 
     IEnumerator WaitForRequestRegister(WWW www)
     {
         yield return www;
         if (www.error != null)
             Debug.Log("fail to request..." + www.error);
         else
         {
             if (www.isDone)
             {
                 string ex = @"<span>([\S\s\t]*?)</span>";
                 Match m = Regex.Match(www.data, ex);
                 if (m.Success)
                 {
                     string result = m.Value;
                     result = result.Substring(result.IndexOf(">") + 1, result.LastIndexOf("<") - result.IndexOf(">") - 1).Trim();
                     if (result == "success")
                     {
                         callback_label2 = "注册成功";
                     }
                     else if (result == "empty")
                     {
                         callback_label2 = "用户名或密码为空";
                     }
                     else if (result == "equals")
                     {
                         callback_label2 = "两次输入密码不一致";
                     }
                     else if (result == "fail")
                     {
                         callback_label2 = "更新数据库失败";
                     }
                     else
                     {
                         callback_label2 = "未知错误";
                     }
                 }
             }
         }
 
     }
     
     IEnumerator WaitForRequestCheck(WWW www)
     {
         yield return www;
         if (www.error != null)
             Debug.Log("fail to request..." + www.error);
         else
         {
             if (www.isDone)
             {
                 Debug.Log("data-->" + www.data);
                 string ex = @"<span>([\S\s\t]*?)</span>";
                 Match m = Regex.Match(www.data, ex);
                 if (m.Success)
                {
                     string result = m.Value;
                     result = result.Substring(result.IndexOf(">") + 1, result.LastIndexOf("<") - result.IndexOf(">") - 1).Trim();
                     if (result == "empty")
                     {
                         callback_label2 = "用户名为空";
                     }
                     else if (result == "nothing")
                     {
                         callback_label2 = "用户名不存在,可以注册";
                     }
                     else if (result == "exist")
                     {
                         callback_label2 = "用户名已存在";
                     }
                     else
                     {
                         callback_label2 = "未知错误";
                     }
                 }
             }
         }
     }
 
     IEnumerator WaitForRequestPhoneIdLogin(WWW www)
     {
         yield return www;
         if (www.error != null)
             Debug.Log("fail to request..." + www.error);
         else
         {
             if (www.isDone)
             {
                 string ex = @"<span>([\S\s\t]*?)</span>";
                 Match m = Regex.Match(www.data, ex);
                 if (m.Success)
                 {
                     string result = m.Value;
                     result = result.Substring(result.IndexOf(">") + 1, result.LastIndexOf("<") - result.IndexOf(">") - 1).Trim();
                     if (result == "ok")
                     {
                         callback_label2 = "手机ID登录成功";
                     }
                     else if (result == "error")
                     {
                         callback_label2 = "手机ID登录成功";
                     }
                     else
                     {
                         callback_label2 = "未知错误";
                     }
                 }
             }
         }
     }
 
 
 }


服务器端注册逻辑:


View Code 
 <%@ page language="java" import="ddt.*" %>
 <jsp:useBean id="user" scope="session" class="ddt.UserBean" />
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
 <html>
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
         <title>JSP Page</title>
     </head>
     <body>
         <%
                 String id = request.getParameter("id");
                 String username = request.getParameter("name");
                 String password = request.getParameter("password");
                 String retry_password = request.getParameter("retry_password");
                 String email = request.getParameter("email");
                 user.processRegisterUserRequest(id, username, password, retry_password, email, request, response);
         %>
     </body>
 </html>


user.processRegisterUserRequest方法是注册就是处理了。登录等其他功能也是采用同样的业务处理流程,不再详述了。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
HuggingFace是一个开源的自然语言处理(NLP)模型库,提供了各种预训练的AI模型。您可以通过访问HuggingFace的官方网站或GitHub页面来使用它们。引用 使用HuggingFace的Demo非常简单。您可以通过以下步骤来使用HuggingFace的Demo: 1. 首先,您需要打开HuggingFace的官方网站或GitHub页面,找到您感兴趣的Demo模型。 2. 在Demo页面,您可以看到模型的描述和用法说明。这些说明将帮助您理解如何使用Demo模型。 3. 接下来,您可以使用提供的示例代码或命令行指令来运行Demo。这些示例代码或指令通常会在文档中提供。 4. 根据需要,您可以在Demo中输入相应的文本或参数。这些输入将作为模型的输入,模型会根据这些输入生成相应的输出。 举个例子,如果您想使用HuggingFace的ChatGPT模型进行对话,您可以通过编写代码或使用命令行指令来启动Demo。然后,您可以输入要与模型对话的文本,并查看模型生成的响应。引用 另外,HuggingFace还提供了其他类型的Demo。例如,它使用了名为「runwayml/stable-diffusion-1-5」的模型来生成跳舞的猫的图片。您可以根据Demo文档中提供的说明和示例代码来使用这个功能。引用 总结起来,要使用HuggingFace的Demo,您需要找到相应的模型,并按照Demo文档中的说明进行操作。您可以通过提供输入来与模型交互,并查看生成的输出结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值