SignallingService.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using Blue;
  4. using Newtonsoft.Json;
  5. using Newtonsoft.Json.Linq;
  6. using UnityEngine;
  7. using UnityEngine.Networking;
  8. public class SignallingService : ISignallingService
  9. {
  10. public void OnInit()
  11. {
  12. this.RegisterEvent<GetContactsSuccessEvent>(GetContactsSuccess);
  13. }
  14. public void GetContacts()
  15. {
  16. CoroutineSystem.Instance.StartCoroutine(OnGetContacts());
  17. }
  18. #region 事件
  19. private void GetContactsSuccess(GetContactsSuccessEvent e)
  20. {
  21. string json = JsonConvert.SerializeObject(e.ContactsInfoList);
  22. Debug.LogError($"获取联系人:{json}");
  23. }
  24. #endregion
  25. #region 协程
  26. private string message;
  27. private IEnumerator OnGetContacts()
  28. {
  29. UnityWebRequest webRequest = new UnityWebRequest(HttpAction.mEndustryURL + HttpAction.signal_contact, "POST");
  30. //foreach( var head in HttpTool.Instance.RequestHeader) webRequest.SetRequestHeader(head.Key,head.Value); 暂时使用直接写的方式,等后续确定使用此行代码
  31. webRequest.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  32. webRequest.SetRequestHeader("Authorization", login.UserInfo.Instance.Token);
  33. webRequest.downloadHandler = new DownloadHandlerBuffer();
  34. yield return webRequest.SendWebRequest();
  35. if (webRequest.result == UnityWebRequest.Result.ProtocolError || webRequest.result == UnityWebRequest.Result.ConnectionError)
  36. Debug.LogError($"Error:{webRequest.error},DownloadHandler:{webRequest.downloadHandler.text}");
  37. else
  38. {
  39. if (!string.IsNullOrWhiteSpace(webRequest.downloadHandler.text))
  40. {
  41. message = webRequest.downloadHandler.text;
  42. JObject jobject = JObject.Parse(message);
  43. if (jobject["code"].ToString() == "200" && !string.IsNullOrEmpty(jobject["data"].ToString()) && !string.IsNullOrEmpty(jobject["data"]["list"].ToString()))
  44. {
  45. message = jobject["data"]["list"].ToString();
  46. List<ContactsInfo> mContactsInfoList = JsonConvert.DeserializeObject<List<ContactsInfo>>(message);
  47. this.SendEvent(new GetContactsSuccessEvent() { ContactsInfoList = mContactsInfoList });
  48. }
  49. }
  50. }
  51. }
  52. #endregion
  53. }