IEnumerator <UnityWebRequestAsyncOperation> SendRq(RequestPayload rq) { webRequest = new UnityWebRequest("https://ssl.dyko.eu/cgi-bin/webglHttpsTunel/BytesPost", UnityWebRequest.kHttpVerbPOST); MessagePackSerializer.PrepareType <byte>(); MessagePackSerializer.PrepareType <byte[]>(); MessagePackSerializer.PrepareType <RequestPayload>(); var s = MessagePackSerializer.Get <RequestPayload>(); byte[] ss = s.PackSingleObject(rq); SecurePacket p = new SecurePacket((UInt16)ServicePort, ss); MessagePackSerializer.PrepareType <UInt16>(); MessagePackSerializer.PrepareType <SecurePacket.SecureFrame>(); var sd = MessagePackSerializer.Get <SecurePacket.SecureFrame>(); byte[] data = sd.PackSingleObject(p.GetSecuredPacket()); UploadHandlerRaw dataHandler = new UploadHandlerRaw(data); dataHandler.contentType = "application/octet-stream"; // might work with 'multipart/form-data' webRequest.uploadHandler = dataHandler; DownloadHandlerBuffer downHand = new DownloadHandlerBuffer(); webRequest.downloadHandler = downHand; yield return(webRequest.SendWebRequest()); List <byte> replyData = new List <byte>(); byte[] unsecuredData = SecurePacket.GetData(sd.UnpackSingleObject(downHand.data)); MessagePackSerializer.PrepareType <GeneralResponseState>(); MessagePackSerializer.PrepareType <GeneralRequestResponse>(); var sr = MessagePackSerializer.Get <GeneralRequestResponse>(); result = sr.UnpackSingleObject(unsecuredData); webRequest.Dispose(); }