At first glance, your question is really about HTTP, not Track, as your request appears to be malformed. I'd suggest using an existing HTTP client if at all possible. You could also contrast your implementation with: http://tools.ietf.org/html/rfc2616#section-4.1. Or, get your query working with curl(1) and capture the interaction with a protocol decoder, perhaps Wireshark. Then analyze your client, and fix the deltas.
-John Kalucki http://twitter.com/jkalucki Services, Twitter Inc. On Jul 27, 11:18 am, Joseph <northwest...@gmail.com> wrote: > I am trying to use the track streaming API, but I'm having trouble > with the syntax. The example shows how to use a tracking list stored > in a file in the format: track = word1, word2, etc.. > > I tried the following (following a successful fsockopen call to > stream.twitter.api: > > POST /track.json track = Palin, #fubar HTTP/1.1 Host: > stream.twitter.com User-Agent: UserAgent Authorization: Basic > cGXybmFzc3TzZGV2OlBhcm5hMzT1Mzl4MDMz Connection: Close > > and I am getting the following error code: HTTP/1.1 400 Bad Request > > The actual relevant test PHP code is: > > $fp = fsockopen($url, 80, $errno, $errstr, 30); > if (!$fp) { > echo "$errstr ($errno)\n";} else { > > echo "file handle: ".$fp."<br/>"; > $header = "POST /track.json track = $trackTerms HTTP/1.1\r\n"; > $header .= "Host: stream.twitter.com\r\n"; > $header .= "User-Agent: UserAgent\r\n"; > $header .= "Authorization: Basic " . base64_encode($twitUsername . > ':' . $twitPwd)."\r\n"; > $header .= "Connection: Close\r\n\r\n"; > echo $header."<br/>"; > fwrite($fp, $header); > $line = fgets($fp, 4096); > echo $line; > fclose($fp); > > }