Paso 9: Programación paso 3: búsqueda de Twitter con el puerto 80 de TCP/IP
por ejemplo:
"Abrir www.google.com 80"
se abrirá una conexión Http a www.google.com.
Twitter en realidad más del protocolo Http que google requiere.
Por ejemplo, el campo "Host" a menudo se requiere en caso de más de una
nombre de dominio asignado a la dirección IP del servidor por lo que puede decir que
sitio web que quieres.
Twitter también requiere que un salto de línea final y carro de retorno ("\r\n")
"GET \n""Host: server\r\n"
"\r\n"
Usar search.json en lugar de search.atom para dar resultados en formato no html y más fácilmente analizado. (ver apiwiki.twitter.com/Twitter-API-Documentation)
/ * Parámetros: el servidor telnet en el comando get que debe enviar, un HtmlParser personalizado que se llama cada vez que se recibe un carácter. El analizador es responsable de procesar el código HTML que se devuelve. * / boolWiFly::HttpWebRequest (constchar * servidor, constchar * getCommand, HtmlParser * analizador) {m_printer -> println(getCommand); FlushRX(); FlushRX(); Entrar en el modo comando EnterCommandMode(); FlushRX(); abrir una conexión TCP, el puerto 80 para HTTP WriteToWiFly("open"); WriteToWiFly(server); WriteToWiFlyCR ("80"); boolopenOK = WaitUntilReceived(COMM_OPEN); Si (openOK == false) {m_printer -> println ("puerto abierto error!"); Delay(1000); WriteToWiFlyCR("close"); WaitUntilReceived(COMM_CLOSE); ExitCommandMode(); returnfalse; } // eg. "GET /search.json?q=foo HTTP/1.1\r\n" WriteToWiFlyCRLF(getCommand); por ejemplo. "Host: search.twitter.com\r\n" WriteToWiFly ("Host:"); WriteToWiFlyCRLF(server); WriteToWiFlyCRLF("") "\r\n"; ahora esperar la respuesta inttimeOut = 0; boolok = false; al mismo tiempo (tiempo de espera < 5000) / / tiempo de espera después de 5 segundos {if((ReadCharFromWiFly(LSR) & 0 x 01)) {charincoming_data = ReadCharFromWiFly(RHR); m_printer -> print(incoming_data,BYTE); booldone = analizador -> Parse(incoming_data); Si () {ok = true; rotura; } timeOut = 0; reiniciar el tiempo de espera} else {delay(1); tiempo de espera ++; }} FlushRX(); Desconecte la conexión TCP. WriteToWiFlyCR("close"); WaitUntilReceived(COMM_CLOSE); ExitCommandMode(); RETURNOK; }