public T Get <T>(string requestUri) { T result = default(T); try { byte[] responseBody = null; using (var client = new HttpClient()) { var response = client.GetAsync(requestUri).GetAwaiter().GetResult(); if (response.IsSuccessStatusCode) { responseBody = response.Content.ReadAsByteArrayAsync().GetAwaiter().GetResult(); } } if (responseBody != null && responseBody.Length > 0) { result = _decoder.DecodeMessage <T>(responseBody, 0, responseBody.Length); } } catch (Exception ex) { _log.Error(string.Format("Get, RequestUri[{0}], Error[{1}].", requestUri, ex.Message), ex); result = default(T); } return(result); }
public static MessageEnvelope <T> Instantiate <T>(this MessageEnvelope envelope, IMessageDecoder decoder) { var message = envelope.ConvertTo <T>(); message.Message = decoder.DecodeMessage <T>(envelope.Body); return(message); }
public static HttpStatusCode Decode <T>(Request request, IBufferManager bufferManager, IMessageDecoder decoder, out T result) { result = default(T); var buffer = bufferManager.BorrowBuffer(); int count = request.Body.Read(buffer, 0, buffer.Length); if (count == 0) { bufferManager.ReturnBuffer(buffer); return(HttpStatusCode.BadRequest); } if (count == buffer.Length) { bufferManager.ReturnBuffer(buffer); return(HttpStatusCode.RequestEntityTooLarge); } result = decoder.DecodeMessage <T>(buffer, 0, count); bufferManager.ReturnBuffer(buffer); if (result == null) { return(HttpStatusCode.InternalServerError); } return(HttpStatusCode.OK); }
public void OnDataReceived(byte[] buffer, long offset, long size) { lock (messageLocker) { messageBuffer.WriteBytes(buffer, (int)offset, (int)size); if (messageBuffer.Length > 0) { byte[][] dataBytesArr = messageBuffer.ReadMessages(); if (dataBytesArr != null && dataBytesArr.Length > 0) { foreach (var dataBytes in dataBytesArr) { if (messageDecoder.DecodeMessage(dataBytes, out int msgID, out byte[] msgBytes)) { ClientMessageData data = messageDataPool.Get(); data.MsgId = msgID; data.MsgBytes = msgBytes; messageDatas.Add(data); } else { NetLogger.Error(LOG_TAG, "error"); } } } }
public T Get <T>(string url, out HttpStatusCode statusCode) { T result = default(T); statusCode = HttpStatusCode.InternalServerError; try { byte[] responseBody = null; var response = _httpClient.GetAsync(url).GetAwaiter().GetResult(); statusCode = response.StatusCode; if (response.IsSuccessStatusCode) // StatusCode was in the range 200-299; { responseBody = response.Content.ReadAsByteArrayAsync().GetAwaiter().GetResult(); } else { _log.WarnFormat("Get, Url[{0}], StatusCode[{1}|{2}].", url, response.StatusCode, response.StatusCode.ToString()); // NotFound indicates that the requested resource does not exist on the server. if (response.StatusCode != HttpStatusCode.NotFound) { // otherwise, any other status code within response means unsuccessful throw new UnanticipatedResponseException( string.Format("HTTP [GET] response with StatusCode[{0}|{1}] was unanticipated.", response.StatusCode, response.StatusCode.ToString())); } } if (responseBody != null && responseBody.Length > 0) { result = _decoder.DecodeMessage <T>(responseBody, 0, responseBody.Length); } } catch (Exception ex) { _log.Error(string.Format("Get, Url[{0}], Error[{1}].", url, ex.Message), ex); result = default(T); } return(result); }
public T Get <T>(string url, out HttpStatusCode statusCode) { T result = default(T); statusCode = HttpStatusCode.InternalServerError; try { byte[] responseBody = null; var response = _httpClient.GetAsync(url).Result; statusCode = response.StatusCode; if (response.IsSuccessStatusCode) // StatusCode was in the range 200-299; { responseBody = response.Content.ReadAsByteArrayAsync().Result; } else { _log.WarnFormat("Get, Url[{0}], StatusCode[{1}|{2}].", url, (int)response.StatusCode, response.StatusCode.ToString()); throw new UnanticipatedResponseException( string.Format("HTTP [{0}] request to Uri[{1}] responses with StatusCode[{2}|{3}] is unanticipated.", response.RequestMessage.Method, response.RequestMessage.RequestUri, (int)response.StatusCode, response.StatusCode.ToString())); } if (responseBody != null && responseBody.Length > 0) { result = _decoder.DecodeMessage <T>(responseBody, 0, responseBody.Length); } } catch (Exception ex) { _log.Error(string.Format("Get, Url[{0}], Error[{1}].", url, ex.Message), ex); throw new HttpRequestException(ex.Message, ex); } return(result); }
public T DecodeFrameData <T>(byte[] data, int offset, int count) { return(_decoder.DecodeMessage <T>(data, offset, count)); }
public IActorMessageEnvelope DecodeEnvelope(byte[] data, int offset, int count) { return(_decoder.DecodeMessage <ActorMessageEnvelope>(data, offset, count)); }