当前位置:   article > 正文

⭐Unity 和 Http 服务器收发消息(发图片为例)_unity怎么将图片作为参数发送post请求

unity怎么将图片作为参数发送post请求

1.和服务器确认需要发的协议(Apipost)

这里可以看到 需要我们发的是一个file文件 参数是你想要上传的图片

2.外置配置文件方便修改

拿到服务器的IP

3.脚本如下:

用WWWForm发送数据

接收到服务器消息后 用 LitJson 来解析

  1. using System.Collections;
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. using System.IO;
  5. using UnityEngine.Networking;
  6. using LitJson;
  7. public class BtnTest : MonoBehaviour
  8. {
  9. public static BtnTest instance;
  10. //config里拿到的数据
  11. public string[] Config;
  12. public Button btn;
  13. public string serverURL; // 服务器URL
  14. public string videoFieldName; // 视频字段名
  15. public string videoFilePath; // 视频文件路径
  16. public MsgClass pngStr; //图片链接类
  17. private void Awake()
  18. {
  19. instance = this;
  20. Config = File.ReadAllLines(Application.streamingAssetsPath + "/Config.txt");
  21. serverURL = Config[0].Split('=')[1];
  22. }
  23. // Start is called before the first frame update
  24. void Start()
  25. {
  26. videoFieldName = "file";
  27. videoFilePath = Application.streamingAssetsPath + "/123.png";
  28. btn.onClick.AddListener(() =>
  29. {
  30. StartCoroutine(SendVideo());
  31. Debug.Log("向服务器发送图片");
  32. });
  33. }
  34. /// <summary>
  35. /// 根据本地视频地址向服务器传录好的视频
  36. /// </summary>
  37. /// <returns></returns>
  38. public IEnumerator SendVideo()
  39. {
  40. // 创建一个新的表单
  41. WWWForm form = new WWWForm();
  42. // 添加视频数据到表单中
  43. byte[] videoData = System.IO.File.ReadAllBytes(videoFilePath);
  44. //form.AddField("openid", "123");
  45. //form.AddField("code", "1002");
  46. form.AddBinaryData(videoFieldName, videoData);
  47. // 发送POST请求到服务器
  48. UnityWebRequest request = UnityWebRequest.Post(serverURL, form);
  49. yield return request.SendWebRequest();
  50. if (request.isNetworkError || request.isHttpError)
  51. {
  52. Debug.LogError("上传照片成功: " + request.error);
  53. }
  54. else
  55. {
  56. Debug.Log("照片上传成功!");
  57. Debug.Log("服务器响应: " + request.downloadHandler.text);
  58. pngStr= JsonMapper.ToObject<MsgClass>(request.downloadHandler.text);
  59. Debug.Log("图片网络链接:"+pngStr.fileName);
  60. }
  61. }
  62. /// <summary>
  63. /// 服务器消息模板
  64. /// </summary>
  65. public class MsgClass
  66. {
  67. /// <summary>
  68. /// 暂无互动
  69. /// </summary>
  70. public string msg { get; set; }
  71. /// <summary>
  72. ///
  73. /// </summary>
  74. public string fileName { get; set; }
  75. /// <summary>
  76. ///
  77. /// </summary>
  78. public int state { get; set; }
  79. }
  80. }

4.这里就能收到服务器的消息啦~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/114136
推荐阅读
相关标签
  

闽ICP备14008679号