打包后启动.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. P2502 [HAOI2006]旅行
  2. 站长圈转风向标了 都玩自媒体了!
  3. wireshark应用--wireshark原来那么简单
  4. SuperMap产权登记管理平台
  5. 大数系列三——斐波那契数列——高效万进制,亿进制
  6. (z) 什么是好的硬件工程师
  7. HDU4911 Inversion 解题报告
  8. OpenGL ES API with no current context
  9. 基于强化学习和析取图模型的统一调度框架
  10. c语言输入字符计算器,C语言编写简单计算器
  11. python获取指定区域的像素_如何获得某个区域的像素值?
  12. OCR如何识别PDF图片中的文字
  13. 模型的泛化能力--正则化
  14. ArcGIS 发布自定义打印模板
  15. 陀螺仪、加速计和磁力计
  16. 利用jmeter完成简单的压力测试
  17. 共享wifi流量主小程序项目
  18. 【Java面试题】常规Java面试题分享
  19. matlab simulink的scope 示波器光标如何移动记录
  20. python植物大战僵尸辅助器手机版_GitHub又放大招,Python版本的植物大战僵尸还能作弊玩!...

热门文章

  1. 说说手机设计行业那些事儿
  2. adb应用之打电话,挂电话
  3. 我用 Python 写了个基金涨跌通知助手!投了五百翻了四倍
  4. Kafka常用配置说明
  5. python密码破解工具_一个最简单的博客园文章密码暴力破解器-python3实现
  6. 基于布谷鸟优化LSTM的短时电力负荷预测
  7. 苹果电池怎么保养_苹果iphone12mini 续航怎么样 电池性能耗电能力评测
  8. android 7.0 高斯模糊,Android图像处理 – 高斯模糊的原理及实现
  9. 论文理解【RL - Episodic Control】 ——【MFEC】Model Free Episodic Control
  10. 360云盘单个文件5G限制