Hi,
I'm trying to get some really simple looking BTC-E ticker data from https://btc-e.com/api/2/btc_usd/ticker and display it as it is in serial monitor.
So far I managed to get this response from the server:
Better client test 9/22/12
Send an e in serial monitor to test
connected
HTTP/1.1 301 Moved Permanently
Server: cloudflare-nginx
Date: Wed, 05 Feb 2014 07:55:46 GMT
Content-Type: text/html
Connection: close
Set-Cookie: __cfduid=d71400cf710a583f916a26fb9906564d21391586946661; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.btc-e.com; HttpOnly
Location: https://btc-e.com/api/2/btc_usd/ticker
Expires: Wed, 12 Feb 2014 07:55:46 GMT
Cache-Control: max-age=604800
CF-RAY: f7e0a508d840479-FRA
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
disconnecting.
==================
.. the "Location: https://btc-e.com/api/2/btc_usd/ticker" line suggest that I'm the right place, but where is the data?
and here is the code I use. It's a simple web client sample code witch I found on Internet.
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
char serverName[] = "btc-e.com"; // web page server
EthernetClient client;
//////////////////////
void setup(){
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
while(true);
}
Serial.begin(9600);
Serial.println("Send an e in serial monitor to test"); // what to do to test
}
void loop(){
// check for serial input
if (Serial.available() > 0) //if something in serial buffer
{
byte inChar; // sets inChar as a byte
inChar = Serial.read(); //gets byte from buffer
if(inChar == 'e') // checks to see byte is an e
{
sendGET(); // call sendGET function below when byte is an e
}
}
}
//////////////////////////
void sendGET() //client function to send/receive GET request data.
{
if (client.connect(serverName, 80)) { //starts client connection, checks for connection
Serial.println("connected");
client.println("GET /api/2/btc_usd/ticker HTTP/1.0"); //download text
client.println("Host: btc-e.com");
client.println(); //end of get request
}
else {
Serial.println("connection failed"); //error message if no client connect
Serial.println();
}
while(client.connected() && !client.available()) delay(1); //waits for data
while (client.connected() || client.available()) { //connected or data available
char c = client.read(); //gets byte from ethernet buffer
Serial.print(c); //prints byte to serial monitor
}
Serial.println();
Serial.println("disconnecting.");
Serial.println("==================");
Serial.println();
client.stop(); //stop client
}
I would greatly appreciate any help you can give me in working this problem.