您好我一直在尝试将数据从我的arduino发送到我的ASP.Net网站并且已经成功,直到我尝试在GET请求中将时间戳作为变量发送。
这是因为asp.net期望:01/01/01 01:01:01并且发送1/1/1 1:1:1。所以我需要弄清楚如果需要,如何将它与前面的零一起发送
到目前为止我的arduino代码(发送部分)
void sendLightData() {
DateTime now = rtc.now();
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
// try to congifure using IP address instead of DHCP:
Ethernet.begin(mac, ip);
}
// give the Ethernet shield a second to initialize:
delay(1000);
Serial.println("connecting...");
// if you get a connection, report back via serial:
if (client.connect(server, 80)) {
Serial.println("connected");
// Make a HTTP request:
client.print("GET /LightData.aspx?uname=");
client.print(userName);
client.print("&pword=");
client.print(password);
client.print("&LStatus=");
client.print(lightStatus);
client.print("&LHeight=9&");
client.print("timestamp=");
client.print(now.day(), DEC);
client.print("/");
client.print(now.month(), DEC);
client.print("/");
client.print(now.year(), DEC);
client.print("%20");
client.print(now.hour(), DEC);
client.print(":");
client.print(now.minute(), DEC);
client.print(":");
client.print(now.second(), DEC);
client.println(" HTTP/1.1");
client.println("Host: www.auntieagie.eu");
client.println("Connection: close");
client.println();
// this works if entered into a browser (trying to replicate in arduino) http://auntieagie.eu/LightData.aspx?uname=test&pword=t&LStatus=1&LHeight=2×tamp=21/02/2014%2001:01:01
}
任何帮助或正确方向上的一点都会很棒
答案 0 :(得分:0)
试试这个:
client.print(now.Date.ToString().Replace(" ", "%20"));
这将返回一个dd / mm / yyyy hh:mm:ss用编码字符替换空格。
至少在Asp Net中你有HttpUtility,如果你有权访问它,你可以使用: System.Web.HttpUtility
client.print(HttpUtility.UrlEncode(now.Date.ToString()));
日和月将返回一个Int值,因此,不包括左零。