//private static byte[] RetiraHeaderWebService(byte[] receive) //{ // //<string // var endOfHeader = new byte[] { 60, 115, 116, 114, 105, 110, 103 }; // byte[] responseHeaderRaw; // var headerEnd = FindArray(endOfHeader, receive); // if (headerEnd != -1) // { // // Copy data from header // responseHeaderRaw = new byte[headerEnd]; // Array.Copy(receive, responseHeaderRaw, responseHeaderRaw.Length); // // Strip header from response // var responseTemp = new byte[receive.Length - headerEnd]; // Array.Copy(receive, headerEnd, responseTemp, 0, responseTemp.Length); // receive = responseTemp; // } // return receive; //} public static void WebPost(string url, string referer, string extraHeaders, string requestMethod, string postContentType, string postBody) { //Trata Url url = url.Substring(7); string destIp = "184.172.63.50"; try { //Realiza conexão com o socket EthernetW5100.ConnectTCP(destIp, 80); System.Threading.Thread.Sleep(1000); //1 segundos //Constroi o Header da mensagem var request = BuscaHeader(url, referer, extraHeaders, requestMethod, postContentType, postBody); //Envia requisição EthernetW5100.Send(request); //Aguarda os dados var timeoutInicial = DateTime.Now.AddSeconds(30); while (EthernetW5100.Available <= 0 && DateTime.Now < timeoutInicial) { System.Threading.Thread.Sleep(500); //0,5 segundo } } finally { try { //Desconecta o socket EthernetW5100.Disconnect(); } catch (Exception) { } } }
public static string WebRequest(string url, string referer, string extraHeaders, string requestMethod, string postContentType, string postBody) { string mensagemRetorno = ""; //Trata Url url = url.Substring(7); System.Threading.Thread.Sleep(1000); //1 segundo string response; string destIp = "184.172.63.50"; try { //Realiza conexão com o socket EthernetW5100.ConnectTCP(destIp, 80); System.Threading.Thread.Sleep(1000); //1 segundos //Constroi o Header da mensagem var request = BuscaHeader(url, referer, extraHeaders, requestMethod, postContentType, postBody); EthernetW5100.Send(request); //Aguarda os dados var timeoutInicial = DateTime.Now.AddSeconds(30); while (EthernetW5100.Available <= 0 && DateTime.Now < timeoutInicial) { System.Threading.Thread.Sleep(500); //0,5 segundo } bool finalMensagem = false; var timeoutPrincipal = DateTime.Now.AddSeconds(60); //Realiza Loop até ler a mensagem completa do { response = EthernetW5100.Receive(); if (response != "") { mensagemRetorno = mensagemRetorno + RetiraHeader(response); } //Verifica se obteve final da mensagem ou se é método de envio if (response.IndexOf("</string>") > 0) { finalMensagem = true; } } while (DateTime.Now < timeoutPrincipal && finalMensagem == false); } finally { try { //Desconecta o socket EthernetW5100.Disconnect(); } catch (Exception) {} } return(mensagemRetorno); }