arduino代码中的http语法错误出错

时间:2015-08-22 17:52:29

标签: http network-programming arduino httpwebrequest gsm

下面的函数描述了使用gps模块的adruino shield和uno board的一组值。

我收到一些错误,也许是在语法中。请忽略指出错误的行。我不希望人们在看到大量编码时感到害怕。

void send_HTTP(){

uint8_t answer=0;
// Initializes HTTP service
answer = sendATcommand("AT+HTTPINIT", "OK", 10000);
if (answer == 1)
{
    // Sets CID parameter
    answer = sendATcommand("AT+HTTPPARA=\"CID\",1", "OK", 5000);
    if (answer == 1)
    {
        // Sets url 
        sprintf(aux_str, "AT+HTTPPARA=\"URL\",\"http://%s/demo_sim908.php?", url);// line number :459
        Serial.print(aux_str);
        sprintf(frame, "visor=false&latitude=%s&longitude=%s&altitude=%s&time=%s&satellites=%s&speedOTG=%s&course=%s",       
        latitude, longitude, altitude, date, satellites, speedOTG, course);   // line number : 460
        Serial.print(frame);
        answer = sendATcommand("\"", "OK", 5000);
        if (answer == 1)
        {
            // Starts GET action
            answer = sendATcommand("AT+HTTPACTION=0", "+HTTPACTION:0,200", 30000);
            if (answer == 1)
            {

                Serial.println(F("Done!"));
            }
            else
            {
                Serial.println(F("Error getting url"));
            }

        }
        else
        {
            Serial.println(F("Error setting the url"));
        }
    }
    else
    {
        Serial.println(F("Error setting the CID"));
    }    
}
else
{
    Serial.println(F("Error initializating"));
}

sendATcommand("AT+HTTPTERM", "OK", 5000);

}

我收到以下错误。

  

Arduino:1.7.5(Windows 8.1),主板:“Arduino Uno”

     

sketch_aug22e.ino:459:13:错误:缺少终止“字符

     

sketch_aug22e.ino:在函数'void send_HTTP()'中:

     

sketch_aug22e.ino:460:34:错误:预期')'之前';'令牌

     

编译错误。

     

此报告将提供更多信息    “在编译期间显示详细输出”    在文件>中启用偏好。

1 个答案:

答案 0 :(得分:0)

第459行中的引号数量不均匀:

  

sprintf(aux_str," AT + HTTPPARA = \" URL \"," http://%s/demo_sim908.php?",url);

令编译器感到困惑。

如果不确切地知道自己想要做什么很难说,但如果要打印3个单独的字符串,则可能是因为您不希望“ESC”和“第三个字符串 - 例如:

  

sprintf(aux_str,&#34; AT + HTTPPARA = \&#34; URL \&#34;&#34;,&#34; http://%s/demo_sim908.php?&#34;,url); < / p>

或者如果你只是想打印两个字符串和“逗号”。在http只是字符串的一部分之前,你可能只需关闭那个&#39; ESCed&#39;网址:

  

sprintf(aux_str,&#34; AT + HTTPPARA = \&#34; URL \&#34;,http://%s/demo_sim908.php?\&#34;,url);