使用WiShield 2.0调用网页

时间:2012-09-18 10:26:42

标签: arduino

我正在尝试找出使用我的WiShield 2.0调用网页的最简单方法。我一直在寻找Web客户端示例代码,但我似乎无法让它工作。请注意,使用以太网shield执行此操作的示例没有多大用处,因为库不兼容。

这适用于测试项目,我想要做的就是调用http://xxx.xxx.xxx.xxx/pagename.php?q=variabletext等网站。

我想我可以使用webclient_get()来做这件事 作为webclient_get(server_ip, 80, texttopass);,但这似乎不起作用。当我调试时,我可以看到“texttopass”正确显示为:“/ pagename.php?q = texttopass”。

我怀疑我错误地使用webclient_get(),但在编译或调试过程中不会抛出任何错误。

任何提示?

示例代码片段如下:

strcpy(fullurl, "/post_message.php?t=Hello World! ");
Serial.println(fullurl);
webclient_get(server_ip, 80, fullurl);

当我打印完全时,我得到:

  

/post_message.php?t=Hello World!

这是webclient_get()在webclient.c中的样子。我很困惑为什么它没有调用完整的URL如: http://xxx.xxx.xxx.xxx/post_message.php?t=Hello%20World

/*-----------------------------------------------------------------------------------*/
void webclient_close(void)
{
    s.state = WEBCLIENT_STATE_CLOSE;
}
/*-----------------------------------------------------------------------------------*/
unsigned char webclient_get(char *host, u16_t port, char *file)
{
    struct uip_conn *conn;
    uip_ipaddr_t ipaddr;

    uip_ipaddr(&ipaddr, host[0], host[1], host[2], host[3]);

    conn = uip_connect(&ipaddr, htons(port));

    if(conn == NULL) {
        return 0;
    }

    s.port = port;
    strncpy(s.file, file, sizeof(s.file));
    strncpy(s.host, host, sizeof(s.host));

    init_connection();
    return 1;
}

0 个答案:

没有答案