[unity3d]unity跟.net进行http通信

原创 2013年12月03日 17:59:02

谈谈今天的学习感受,今天收获最大的就是解决了u3d向.net提交表单,然后.net服务器将接受过来的表单数据保存到sqlserver数据库中。unity3d中wwwform默认的是post提交的。

http 提交数据原理 

http 协议通过 url来获取和提交数据 。提交数据的方式 有两种,一种是get方法,一种是post方法。get一般用于告诉服务器把满足参数的数据发送给回来。

例如:get 的html代码如下:

[html] view plaincopy
  1. <form action="search.php" method ="GET">  
  2.     <username:<inputtypeinputtype="text"name="user"/><br>  
  3.     <password:<inputtypeinputtype="password "name="pwd"/><br>  
  4.      <input type="submit"value="login"/>  
  5. </form >  

post一般是将数据发送给服务器,服务器将这些数据进行处理,比如说存储到数据库。

例如:post的html 代码如下:

[html] view plaincopy
  1. <form action="login.php" method ="POST" >  
  2.     <username:<inputtypeinputtype="text"name="user"/><br>  
  3.     <password:<inputtypeinputtype="password "name="pwd"/><br>  
  4.      <input type="submit"value="login"/>  
  5. </form >  

     其实区别就是提交的方式不一样,点击login按钮后,浏览器地址栏里分别显示如下:

       get方法url为:http://127.0.0.1/serach.php?user=hortor&pwd=123

       post方法url为:http://127.0.0.1

客户端发送表代码:

using UnityEngine;
using System.Collections;

public class test : MonoBehaviour {

	private string url = "http://192.168.1.7/plusFile/Handler.ashx";
	private string urlname;
	void Start () {
		urlname = "丁小未";
		
	}
	
	void OnGUI()
	{
		GUILayout.Label("姓名:");
		urlname = GUILayout.TextField(urlname);
		if(GUILayout.Button("确认提交"))
		{
			StartCoroutine(myUpdate());	
		}
	}
	
	IEnumerator myUpdate()
	{
		WWWForm form = new WWWForm();
		form.AddField("url",urlname);
		WWW w = new WWW(url,form);
		yield return w;
		print(w.data);
		if(w.error!=null)
		{
			print("错误:"+w.error);
		}
		else
		{
			print("OK");
			print(w.text); //服务器端返回的数据
			print("长度:"+w.text.Length.ToString());
		}
	}
}

效果图:



服务器端接受代码:

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

public class Handler : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        
        string name = context.Request.Form["url"];
        //string name = context.Request.QueryString["url"];
        if (name != null)
        {
            context.Response.Write("我接收到了:"+name);
            //context.Response.Write("<font color= 'red'>hello</font>");
            Test1 t = new Test1();
            t.conn(name);   
        }
        else
        {
            context.Response.Write("error");
        }
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}


public class Test1
{
    SqlConnection dbConnection;
    private string sqlInsert;
    //private string name;

    public Test1()
    {
        
    }

    public void conn(string name)
    {
        if (name != null)
        {
            sqlInsert = "INSERT INTO source(url) VALUES(" + "'"+name+"'" + ")";
            openSqlConnection();//打开数据库
            doQuery(sqlInsert);
        }
    }

    public void openSqlConnection()
    {
        dbConnection = new SqlConnection("server=.;database=Student;user id=sa;password=123456");
        dbConnection.Open();
    }

    public void closeSqlConnection()
    {
        dbConnection.Close();
        dbConnection = null;
    }

    public void doQuery(string strCommand)
    {
        SqlCommand dbCommand = dbConnection.CreateCommand();
        dbCommand.CommandText = strCommand;
        int i = dbCommand.ExecuteNonQuery();
        dbCommand.Dispose();
        dbCommand = null;
        if (i > 0)
        {
            //Response.Write("插入成功");
        }
    }
}

服务器端效果图:




==================== 迂者 丁小未 CSDN博客专栏=================

MyBlog:http://blog.csdn.net/dingxiaowei2013             MyQQ:1213250243

Unity QQ群:858550         cocos2dx QQ群:280818155

====================== 相互学习,共同进步 ===================

 

转载请注明出处:http://blog.csdn.net/dingxiaowei2013/article/details/17099057

欢迎关注我的微博:http://weibo.com/u/2590571922

需要工程文件的请留言!

版权声明:本文为博主原创文章,未经博主允许不得转载。Unity交流群:159875734 举报

相关文章推荐

Unity3D 游戏引擎之C#使用Socket与HTTP连接服务器传输数据包

最近比较忙,有段时间没写博客拉。最近项目中需要使用HTTP与Socket,雨松MOMO把自己这段时间学习的资料整理一下。有关Socket与HTTP的基础知识MOMO就不赘述拉,不懂得朋友自己谷歌吧。我...

HTTP Status 415 - Unsupported Media Type

用SpringMVC作数据绑定时,提示“HTTP Status 415 - Unsupported Media Type”错误,获取不到绑定的Json数据 查找资料【http://www.ibm.c...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

unity3d中的http通信

前言 Unity3d 是一个跨平台的引擎,在移动互联网浪潮之中,尤其是移动游戏3d方向上,Unity3d 毫无疑问是最耀眼的明星。Unity3d的http通信很简单,也非常好用,下面通过http和p...
  • mfc11
  • mfc11
  • 2012-11-15 22:04
  • 32543

Unity3d之Http通讯GET方法和POST方法

(一)GET方法 IEnumerator SendGet(string _url) { WWW getData = new WWW(_url); yi...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)