使用arduino将请求发送到ASP.NET webservice

时间:2014-01-03 11:25:08

标签: asp.net web-services azure arduino wifi

我在ASP .NET中创建了一个web服务,我在azure上发布了这个函数

public string GetObject(int id)
{
   return ("it is a test !");
}

当我输入正确的URL时,它可以工作。 但是当我尝试使用arduino发送请求时(基于ethernetclient示例),它不起作用。

arduino代码:

#include "Arduino.h"
#include <SPI.h>
#include <WiFlyHQ.h>
#include <Ethernet.h>
#include <SoftwareSerial.h>

WiFly wifly;

char ssid[] = "myssid";
char password[] = "mypass";

void setup() {
  Serial.begin(9600);
  wifly.begin(&Serial, NULL);

    if (!(wifly.setSSID(ssid))) {
      Serial.println("Fail to set ssid"); 
    }
/*    if (!(wifly.setKey(password))) {
      Serial.println("Fail to set passPhrase"); 
    } */
    if (!(wifly.setPassphrase(password))) {
      Serial.println("Fail to set passPhrase");
    }
    wifly.enableDHCP();
    if (wifly.join()) {
      Serial.println("Joined wifi network");
    } else {
      Serial.println("Failed to join wifi network");
    }

    if (wifly.open(myurl.azurewebsites.net)) {
      wifly.println("GET /api/object/123 HTTP/1.0");
      wifly.println("");
    }
    else
      Serial.println("Connection failed");
}

void loop() {
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }
}

与ssid的连接有效。但它阻止了wifly.open()。但是,如果我把wifly.open(“search.yahoo.com”)然后wifly.write(“GET / search?p = 50 + km + in + miles HTTP / 1.0”),所有工作!

你知道为什么吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

EthernetClient如何与WiFly连接?我没有看到任何连接它们的电话。我已经完成了一些WiFly模块的播放,但我没有看到你如何使用EthernetClient。

WiFly模块是网络连接,可通过串口访问。您是否需要提出请求,通过串行处理来处理响应?