So my question: How could I encode the URL "http://search.twitter.com/search.atom?q=help" in the Arduino programm so that the string provokes the connection to twitter and triggers the search?
You will need to use ethernet code that supports DNS resolution of the IP address. Below is some code I've used for simple testing that uses a special ethernet library.
//zoomkat 11-13-10
//Kegger ethernet client with DHCP/DNS test code
//using the Kegger ethernet library
//for use with IDE 0021 and W5100 ethernet shield
//open serial monitor to see what the arduino receives
//push the shield reset button to run client again
// http://kegger.googlecode.com/files/Ethernet.zip
#include <Ethernet.h>
#include "Dhcp.h"
#include "Dns.h"
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
boolean ipAcquired = false;
DnsClass googleDns;
void setup()
{
Serial.begin(9600);
Serial.println("getting ip...");
int result = Dhcp.beginWithDHCP(mac);
if(result == 1)
{
ipAcquired = true;
byte buffer[6];
Serial.println("ip acquired...");
Dhcp.getMacAddress(buffer);
Serial.print("mac address: ");
printArray(&Serial, ":", buffer, 6, 16);
Dhcp.getLocalIp(buffer);
Serial.print("ip address: ");
printArray(&Serial, ".", buffer, 4, 10);
Dhcp.getSubnetMask(buffer);
Serial.print("subnet mask: ");
printArray(&Serial, ".", buffer, 4, 10);
Dhcp.getGatewayIp(buffer);
Serial.print("gateway ip: ");
printArray(&Serial, ".", buffer, 4, 10);
Dhcp.getDhcpServerIp(buffer);
Serial.print("dhcp server ip: ");
printArray(&Serial, ".", buffer, 4, 10);
Dhcp.getDnsServerIp(buffer);
Serial.print("dns server ip: ");
printArray(&Serial, ".", buffer, 4, 10);
//// Do DNS Lookup
googleDns.init("web.comporium.net", buffer); //Buffer contains the IP address of the DNS server
googleDns.resolve();
int results;
while(!(results=googleDns.finished())) ; //wait for DNS to resolve the name
if(results != 1)
{
Serial.print("DNS Error code: ");
Serial.print(results,DEC);
}
googleDns.getIP(buffer); //buffer now contains the IP address for google.com
Serial.print("Web Server IP address: ");
printArray(&Serial, ".", buffer, 4, 10);
Client client(buffer, 80);
Serial.println("connecting...");
if (client.connect()) {
Serial.println("connected");
client.println("GET /~shb/arduino.txt HTTP/1.0");
client.println();
while(true){
if (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
spinForever();
}
} // while(true)
} //if(client.connect())
else {
Serial.println("connection failed");
}
}
else
Serial.println("unable to acquire ip address...");
}
void printArray(Print *output, char* delimeter, byte* data, int len, int base)
{
char buf[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
for(int i = 0; i < len; i++)
{
if(i != 0)
output->print(delimeter);
output->print(itoa(data[i], buf, base));
}
output->println();
}
void loop()
{
spinForever();
}
void spinForever()
{
for(;;)
;
}