网络说难不难,说简单不简单 其实 在x项目开始的时候就应该定好.
一开始协商好协议 后期真的会省好多事
项目刚开始 上面都没讲 盲目的去做
开始给自己挖了一个大坑 真是 欲哭无泪
一般而言 游戏服务器 大多都是需要在服务器上去跑一套程序 小游戏就无所谓了
本项目的服务器是用PHP跑的 形式跟网页一样
萌新 开始觉得 没什么 网上不是有教程吗 然后就开始了踏坑之路
wwwform 类 可以处理上传数据表 但是 不知道怎么处理header 也就是说 表 跟header不能同时去传送
想传送 可以 必须用流的形式去传信息 就不能用formdate 晕了 真是有种想死的冲动
我换了unitywebrequst 用post去传 结果 也是 还久没看API了 看的时候还是
大眼一扫 没有需要的就直接过 其实忽略了一个重点
unitywebrequster 这是个新的 里面好像有5个重载 大眼一看就能明白的 直接掠过吧 你就看那个不明白的 传值 有一个是列表的那个 重点看一下
header 这个 可以这样去做 unitywebrequster.setrequsterHeader (string name,string value) 加入需要设置的header就一个的 话 直接添加就可以 如果多个 可以再点出来这个函数 继续添加 到此 你会遇到一个问题 就是你再登录的时候 会提示你设置的header有问题 尤其是 Oringin 好像是跨域的问题 搞了半天 没解决 果断弃用这个
bestHttp 这真是一个非常好用的插件
简单易用 兼容性很好 可以全平台支持
本来只是想说下想法 不贴代码 但是 为了能帮到别人 还是详细点吧
using BestHTTP;
using LitJson;
using BestHTTP.Statistics;
using BestHTTP.Cookies;
HTTPRequest hTTP = new HTTPRequest(new Uri(login_url),HTTPMethods.Post, OnRequestFinished);
这个是地址 这个是发送消息的方式 这个是方法的回调
TP.AddField("LoginForm[username]", prompt.ID);
hTTP.AddField("LoginForm[password]", prompt.Password);
hTTP.AddField("ajax","login-form");
hTTP.SetHeader("Origin", "http://localhost"); //这个是设置的header
hTTP.SetHeader("X-Requested-With", "XMLHttpRequest"); //这个有特殊设置的header
hTTP.IsCookiesEnabled = true; //这个是用来设置cookie 为true的时候 会自动处理
yield return hTTP.Send();
void OnRequestFinished(HTTPRequest request, HTTPResponse response)
{
response.DataAsText; 这个是 发送消息返回的信息 可以直接打印出来
}
到此 告一段落