public ruleForm(AlpineBitsServer srvAlpineBits) { InitializeComponent(); myServer = srvAlpineBits; ReadServerParams(); this.Text = "Certification"; }
public static async Task <AlpineBitsResponse> ProcessRequest(AlpineBitsServer CallServer, string CallAction, string CallParam = "") { var StatusCode = ""; var Response = new AlpineBitsResponse(); if (CallParam.Length > 0) { CallParam = CallParam.Replace("{HOTELCODE}", CallServer.HotelCode); CallParam = CallParam.Replace("{HOTELNAME}", "Hotel AlpineBits"); CallParam = CallParam.Replace("{YEAR}", DateTime.Now.Year.ToString()); } // OTA_INVENTORY var content = new MultipartFormDataContent(Guid.NewGuid().ToString()); //Note: it's a best practice to use double-quotes, even when the name doesn't contain spaces: content.Add(new StringContent(CallAction), "\"action\""); string RequestXML = CallParam; if (CallAction != "getVersion" && CallAction != "getCapabilities") { content.Add(new StringContent(CallParam), "\"request\""); } HttpResponseMessage result; // Client: acceptEncoding gzIP HttpClientHandler clHandler = new HttpClientHandler(); if (CallServer.AcceptResponseGZIPEncoded) { clHandler.AutomaticDecompression = DecompressionMethods.GZip; } var headersRequest = ""; var headersResponse = ""; using (var client = new HttpClient(clHandler)) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(UTF8Encoding.UTF8.GetBytes(string.Format("{0}:{1}", CallServer.UserName, CallServer.Password)))); client.DefaultRequestHeaders.Add("X-AlpineBits-ClientProtocolVersion", CallServer.X_AlpineBits_ProtocolVersion); client.DefaultRequestHeaders.Add("X-AlpineBits-ClientID", CallServer.X_AlpineBits_ClientID); if (CallServer.InvokeZipped) { result = await client.PostAsync(CallServer.ServerURL, new CompressedContent(content, "gzip")); } else { // client.DefaultRequestHeaders.TransferEncoding.Add(new TransferCodingHeaderValue("chunked")); // client.DefaultRequestHeaders.TransferEncoding.Add(new TransferCodingHeaderValue("gzip")); result = await client.PostAsync(CallServer.ServerURL, content); } headersResponse = result.Headers.ToString() + result.Content.Headers.ToString(); Response.Encoding = result.Content.Headers.ContentType.ToString(); headersRequest = client.DefaultRequestHeaders.ToString(); StatusCode = result.StatusCode.ToString("D") + " " + result.StatusCode.ToString(); } Response.StatusCode = StatusCode; Response.ResponseHeaders = headersResponse; if (result.StatusCode == HttpStatusCode.OK) { Response.ResponseBody = await result.Content.ReadAsStringAsync(); } else { Response.ResponseBody = await result.Content.ReadAsStringAsync(); // Response.ResponseBody = @"Request failed. Status code: " + result.StatusCode + " " + result.StatusCode.ToString("D") + ". Message Content: " + result.Content.ReadAsStringAsync().Result; } return(Response); }