打包后启动.exe带参数

启动传参数可以参考这篇文章: 浏览器调用本地exe(应用程序)方法

Unity准备工作

需要用到这个API

Environment.GetCommandLineArgs()

官方解释:返回包含当前进程的命令行参数的字符串数组
返回值是一个string[],当Length>1的时候就是带参数,注意:在UnityEditor模式也就是编辑器模式会有默认参数返回,Length是大于1的

UnityWebRequest API使用

常用的就是Get与Post,代码比较简单,有的地方传参时需要注意有没有RequestHeader,这个需要进行特殊处理

代码

 IEnumerator IePostRequest(string url, object mRequestData, GetDate getDate){string paramStr = JsonUtility.ToJson(mRequestData);byte[] databyte = Encoding.UTF8.GetBytes(paramStr);using (var request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST)){request.uploadHandler = new UploadHandlerRaw(databyte);request.downloadHandler = new DownloadHandlerBuffer();request.SetRequestHeader("Content-Type", "application/json;charset=utf-8");request.SetRequestHeader("Authorization", "Bearer" + sessionId);request.SetRequestHeader("Content-Length", databyte.Length.ToString());yield return request.SendWebRequest();if (request.result != UnityWebRequest.Result.Success){Debug.Log(request.error);}elsegetDate(request.downloadHandler.text);}}IEnumerator IeGetRequest(string url, GetDate getDate){using (var request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbGET)){request.SetRequestHeader("Content-Type", "application/json");request.SetRequestHeader("Authorization", "Bearer" + sessionId);request.downloadHandler = new DownloadHandlerBuffer();yield return request.SendWebRequest();if (request.result != UnityWebRequest.Result.Success){Debug.Log(request.error);}elsegetDate(request.downloadHandler.text);}}

其中GetDate getDate是一个委托,用来接收返回的数据

public delegate void GetDate(string data);

完整代码

using System;
using System.Collections;
using System.Text;
using UnityEngine;
using UnityEngine.Networking;public class UnityPageRequest : MonoBehaviour
{/// <summary>/// token/// </summary>string sessionId;public delegate void GetDate(string data);private void Awake(){string[] CommandLineArgs = Environment.GetCommandLineArgs();string testData = "";if (CommandLineArgs.Length < 2){Debug.Log("没有参数");//Application.Quit();//启动时没有参数则退出}else{if (CommandLineArgs[1] == ""){//启动参数是空的}else{//解析各种IDtestData = CommandLineArgs[1];}}ParseInitData(testData);}void ParseInitData(string data){//启动数据在这里进行解析//sessionId = 解析的数据}public void PostRequest(string url, object mRequestData, GetDate getDate){StartCoroutine(IePostRequest(url, mRequestData, getDate));}public void GetRequest(string url, string mRequestData, GetDate getDate){StartCoroutine(IeGetRequest(url + mRequestData, getDate));}public void DeleteRequest(string url){StartCoroutine(IeDeleteRequest(url));}IEnumerator IePostRequest(string url, object mRequestData, GetDate getDate){string paramStr = JsonUtility.ToJson(mRequestData);byte[] databyte = Encoding.UTF8.GetBytes(paramStr);using (var request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST)){request.uploadHandler = new UploadHandlerRaw(databyte);request.downloadHandler = new DownloadHandlerBuffer();request.SetRequestHeader("Content-Type", "application/json;charset=utf-8");request.SetRequestHeader("Authorization", "Bearer" + sessionId);request.SetRequestHeader("Content-Length", databyte.Length.ToString());yield return request.SendWebRequest();if (request.result != UnityWebRequest.Result.Success){Debug.Log(request.error);}elsegetDate(request.downloadHandler.text);}}IEnumerator IeGetRequest(string url, GetDate getDate){using (var request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbGET)){request.SetRequestHeader("Content-Type", "application/json");request.SetRequestHeader("Authorization", "Bearer" + sessionId);request.downloadHandler = new DownloadHandlerBuffer();yield return request.SendWebRequest();if (request.result != UnityWebRequest.Result.Success){Debug.Log(request.error);}elsegetDate(request.downloadHandler.text);}}/// <summary>/// Delete请求(携程)/// </summary>/// <returns></returns>public IEnumerator IeDeleteRequest(string url){using (UnityWebRequest webRequest = UnityWebRequest.Delete(url)){yield return webRequest.SendWebRequest();if (!string.IsNullOrEmpty(webRequest.error)){Debug.Log(webRequest.error);}else{Debug.Log("Okk");}}}}

Unity 启动时带参数,网页后端进行数据交互 UnityWebRequest ,Post,Get,Delete相关推荐

  1. python的前端和后端_前端与后端的数据交互(jquery ajax+python flask)

    前端与后端的数据交互,最常用的就是GET.POST,比较常用的用法是:提交表单数据到后端,后端返回json 前端的数据发送与接收 1)提交表单数据 2)提交JSON数据 后端的数据接收与响应 1)接收 ...

  2. python后端数据发送到前端_前端与后端的数据交互(jquery ajax+python flask)

    前端与后端的数据交互,最常用的就是GET.POST,比较常用的用法是:提交表单数据到后端,后端返回json 前端的数据发送与接收 1)提交表单数据 2)提交JSON数据 后端的数据接收与响应 1)接收 ...

  3. 安卓和后端服务器数据交互

    记录一下安卓和后端数据交互吧!数据传输框架OkHttp3 题外话::其实安卓和后端的数据交互也就相当于网页端和后端的交互一样.后端一样的写接口!传数据的变成了安卓端而已!由于公司要求都是写全套的,所以 ...

  4. python后端与前端数据交互_前端与后端的数据交互(jquery ajax+python flask)

    前端与后端的数据交互,最常用的就是GET.POST,比较常用的用法是:提交表单数据到后端,后端返回json 前端的数据发送与接收 1)提交表单数据 2)提交JSON数据 后端的数据接收与响应 1)接收 ...

  5. 新建html带参数,本地html加载时带参数的问题

    先阐述背景: app需要集成一个本地的html文件,并且在调用时url带参数.如: analysis.html?sId=417492&apiUrl=http://192.168.100.1:8 ...

  6. oracle查询数据库启动时的参数文件,【Oracle】数据库启动阶段参数文件、控制文件的问题处理...

    Oracle启动分三个阶段: nomount: 首先查找参数文件(pfile/spfile),根据文件创建实例.Nomount的过程是启动数据库实例的过程. 没有参数文件无法nomount mount ...

  7. java安装的时候无效参数,spring-boot 打成jar把后 启动时指定参数无效

    今天后台项目进行修改,使用spring.profiles来指定启动时使用的配置文件.在项目中添加好配置文件后使用java -jar .\base-exec.jar --spring.profiles. ...

  8. echarts前后端交互数据_如何避免前后端在数据交互方面的相爱相杀?

    全前端包掉?还是全后端包掉?谁能裁决?所以,出现了以下对话: [问题点]所以,怎么办捏? Ebiubiu有话说: [划重点]需要根据实际业务不同场景下的情况做实际判断决策 前端界面包含两类信息:数据内 ...

  9. 数据库和网页之间的数据交互

    浏览器发送请求 localhost:8080/home 通过thymeleaf (xmlns:th="http://thymeleaf.org">)和model.addAtt ...

最新文章

  1. 【驱动】内核打印级别设置
  2. openstack的网络、子网、端口的关系
  3. 装配图位置偏转怎么调整_大偏转角液晶偏振光栅的研究
  4. git修改文件权限方式
  5. 又一次寻找bug的经历...这次是 openlayers + chrome + win7
  6. AngularJS学习笔记(1) - AngularJS入门
  7. 做好开源项目 需要坚持
  8. 浅谈.net的后台校验
  9. EasyUi通过POI 实现导出xls表格功能
  10. 自动安装与配置复制batch脚本
  11. 基于单片机的电子密码锁设计
  12. 3种结构ZnO基半导体纳米复合材料-图文详解
  13. u盘感染病毒文件夹变成exe
  14. 第六届“蓝帽杯”全国大学生网络安全技能大赛-初赛Writeup
  15. 恐鬼症(Phasmophobia)联机版
  16. html2canvas 在ios 13.4.x 、 13.5.x 微信浏览器中失效无反应
  17. 大数据分析的技术有哪些?
  18. mongodb 基于3千万条数据, 查询30万结果集,分页问题
  19. Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)
  20. git submodule解决多包协作

热门文章

  1. 说说手机设计行业那些事儿
  2. ARM架构与内核之间关系的简单讲解
  3. nginx html伪静态文件,nginx伪静态排除指定目录伪静态规则设置
  4. Masscan扫描器安装和使用
  5. Java中的 移位 运算
  6. GitHub简明教程2
  7. 我为什么喜欢用键盘/快捷键,而不是鼠标?
  8. 最全的NumPy教程
  9. 淘宝开女装店前期需要准备什么?开淘宝服装店要注意什么?
  10. 1000的阶乘-HDU 1042-大数阶乘(万进制思想)