void Start() { SerializeManager <PlayerScore> serializer = new SerializeManager <PlayerScore>(); PlayerScore myData = new PlayerScore("matt", 200); output = serializer.SerializeObject(myData); }
private void Update() { AllTcpRequestData requestData = null; while (mAllTcpRequestDatas.TryDequeue(out requestData)) { int protocolID = SocketHead.GetPacketProtocolID(requestData.RequestMessage, 4); if (protocolID == ProtocolCommand.RequestHearBeat) { Debug.Log($"收到{requestData.mClientSocket.RemoteEndPoint} 心跳包"); HeartbeatResponse response = new HeartbeatResponse() { mSystemTime = System.DateTime.UtcNow.Ticks }; string responseStr = SerializeManager.SerializeObject(response); TcpServerUIComponent.Instance.mTcpServer.SendMessage(ProtocolCommand.ResponseHearBeat, responseStr, requestData.mClientSocket); } else if (protocolID == ProtocolCommand.RequestLogin) { string message = Encoding.UTF8.GetString(requestData.RequestMessage, SocketHead.S_HeadLength, requestData.RequestMessage.Length - SocketHead.S_HeadLength); Debug.Log($"接收到来自{requestData.mClientSocket.RemoteEndPoint} 的登录信息{message}"); LoginRequest request = SerializeManager.DeserializeObject <LoginRequest>(message); LoginResponse response = new LoginResponse(); response.mUserName = request.mUserName; response.mToken = "xyz"; response.mIsSuccess = true; string responseStr = SerializeManager.SerializeObject(response); TcpServerUIComponent.Instance.mTcpServer.SendMessage(ProtocolCommand.ResponseLogin, responseStr, requestData.mClientSocket); } } }
void Start() { SerializeManager<PlayerScore2> serializer = new SerializeManager<PlayerScore2>(); PlayerScore2 myData = new PlayerScore2("matt", 200); output = serializer.SerializeObject(myData); }
public static byte[] GetMultipartFormData(Dictionary <string, object> postParameters, string boundary) { Stream formDataStream = new System.IO.MemoryStream(); bool needsCLRF = false; foreach (var param in postParameters) { // Thanks to feedback from commenters, add a CRLF to allow multiple parameters to be added. // Skip it on the first parameter, add it to subsequent parameters. if (needsCLRF) { formDataStream.Write(encoding.GetBytes("\r\n"), 0, encoding.GetByteCount("\r\n")); } needsCLRF = true; if (param.Value is FileParameter) { FileParameter fileToUpload = (FileParameter)param.Value; // Add just the first part of this param, since we will write the file data directly to the Stream string header = string.Format("--{0}\r\nContent-Disposition: form-data; name=\"{1}\"; filename=\"{2}\"\r\nContent-Type: {3}\r\n\r\n", boundary, param.Key, fileToUpload.FileName ?? param.Key, fileToUpload.ContentType ?? "application/octet-stream"); formDataStream.Write(encoding.GetBytes(header), 0, encoding.GetByteCount(header)); // Write the file data directly to the Stream, rather than serializing it to a string. formDataStream.Write(fileToUpload.File, 0, fileToUpload.File.Length); } else if (param.Value is LoadOptions) { string header = string.Format("--{0}\r\nContent-Disposition: form-data; name=\"{1}\"; objectname=\"{2}\"\r\nContent-Type: {3}\r\n\r\n", boundary, param.Key, param.Key, "application/octet-stream"); formDataStream.Write(encoding.GetBytes(header), 0, encoding.GetByteCount(header)); byte[] objData = SerializeManager.SerializeObject(param.Value); formDataStream.Write(objData, 0, objData.Length); } else if (param.Value is byte[]) { string header = string.Format("--{0}\r\nContent-Disposition: form-data; name=\"{1}\"; objectname=\"{2}\"\r\nContent-Type: {3}\r\n\r\n", boundary, param.Key, param.Key, "application/octet-stream"); formDataStream.Write(encoding.GetBytes(header), 0, encoding.GetByteCount(header)); byte[] objdata = param.Value as byte[]; formDataStream.Write(objdata, 0, objdata.Length); } else { string postData = string.Format("--{0}\r\nContent-Disposition: form-data; name=\"{1}\"\r\n\r\n{2}", boundary, param.Key, param.Value); formDataStream.Write(encoding.GetBytes(postData), 0, encoding.GetByteCount(postData)); } } // Add the end of the request. Start with a newline string footer = "\r\n--" + boundary + "--\r\n"; formDataStream.Write(encoding.GetBytes(footer), 0, encoding.GetByteCount(footer)); // Dump the Stream into a byte[] formDataStream.Position = 0; byte[] formData = new byte[formDataStream.Length]; formDataStream.Read(formData, 0, formData.Length); formDataStream.Close(); return(formData); }