u3d:关于u3d访问webservice服务的应用

主要目的:用u3d通过webservice暴露的方法接口来实现读写服务端的数据,最初始的时候是想直接通过服务端路径,用u3d直接读写txt文档,最终折腾很久,发现可以读取服务端的txt文档,但是无法写入,读取方法如下

 WebRequest wr = WebRequest.Create("http://192.168.2.1/aa/wenben.txt");
        Stream s = wr.GetResponse().GetResponseStream();
        StreamReader sr = new StreamReader(s, Encoding.Unicode);
        StreamWriter sw = new StreamWriter("http://192.168.2.1/aa/lp.txt", true);
        sw.WriteLine("asdasd");
        string str= sr.ReadToEnd();

代码中这样可以读取,但是无法通过streamwrite写入文件

 

关于通过u3d读取webservice的方法,以下图中的方法接口为例,输入一个string值,进行一系列运算,输出一个string值:

 

 

方法1:直接上代码

    string url= "http://localhost:51100/WebService1.asmx/Active";
    IEnumerator Upload()
    {
        WWWForm form = new WWWForm();
        form.AddField("code", "567");
        UnityWebRequest request = UnityWebRequest.Post(url, form);
        yield return request.SendWebRequest();
        Debug.Log(request.error);
        Debug.Log(request.responseCode);
        Debug.Log(request.downloadHandler.text);
    }

该方法不需要任何dll导入,代码简单,pc上可运行,android还没有试,没有其他dll介入,应该完美运行,主要问题,第一次写入访问地址的时候,设定的url=

http://localhost:51100/WebService1.asmx?Active
最后看了标准,根据上图中的post规范,改完之后完美响应,最主要的地方就是post的路径问题

 

 

方法二:常见的方法,用vs导出webservice的cs文件到u3d中,u3d需要加载两wsdl的dll文件,然后方法webservice,此方法可以pc和andoriod上运行,使用过,不做具体说明了

posted @ 2019-12-26 17:46  怪力~乱神  阅读(291)  评论(0编辑  收藏  举报