尝试在HTTP post中读取响应后出错
我正在研究PIC24F微控制器与M95 quectel调制解调器接口的HTTP协议 我正在尝试“POST”方法。我已经阅读了quectel的HTTP协议数据表 以下是发送HTTP post请求AT命令:尝试在HTTP post中读取响应后出错,http,at-command,modem,Http,At Command,Modem,我正在研究PIC24F微控制器与M95 quectel调制解调器接口的HTTP协议 我正在尝试“POST”方法。我已经阅读了quectel的HTTP协议数据表 以下是发送HTTP post请求AT命令: AT+QIFGCNT AT+QHTTPURL AT+QHTTPPOST AT+QHTTPREAD AT+QIDEACT 我根据这个流程顺序编写代码。我将这些命令放在无限while循环中。 第一次成功地从服务器读取响应时,没有问题,但后来出现了一个错误,如“http响应失败”或 位于+QHTTP
AT+QIFGCNT
AT+QHTTPURL
AT+QHTTPPOST
AT+QHTTPREAD
AT+QIDEACT
我根据这个流程顺序编写代码。我将这些命令放在无限while循环中。
第一次成功地从服务器读取响应时,没有问题,但后来出现了一个错误,如“http响应失败”或
位于+QHTTPREAD的“http获取无请求”
我必须重复整个HTTP post AT命令,还是只重复AT+QHTTPREAD命令
代码:
如果您使用的是相同的URL,那么就不需要了,只需从AT+QHTTPPOST开始 如果另一个URL用于另一个内容,则从AT+GHTTPURL开始
bool SendAtCommand_Response(char *command, char *response,int Delay);
while(1)
{
SendAtCommand_Response("AT\r","OK",500);
uart1str("Modem is ready\r\n");
Delayms(2000);
uart1str("\r\n");
clear(); //clear response buffer
SendAtCommand_Response("AT+CPIN?\r","OK",2000);
Delayms(300);
uart1str("\r\n");
clear();
SendAtCommand_Response("AT+QIFGCNT=0\r","OK",500);
Delayms(300);
uart1str("\r\n");
clear();
SendAtCommand_Response("AT+QICSGP=1,\"airtelGPRS.com\"\r","OK",500);
Delayms(500);
uart1str("APN is set\r\n");
uart1str("\r\n");
clear();
SendAtCommand_Response("AT+QHTTPURL=37,30\r","CONNECT",500);
uart1str("URL is set\r\n");
clear();
SendAtCommand_Response(HTTP_POST_URL_HS ,"OK",500);
Delayms(500);
uart1str("URL Sent\r\n");
clear();
SendAtCommand_Response("AT+QHTTPPOST=22,25,10\r","CONNECT",1000);
Delayms(1000);
uart1str("\r\n");
clear();
SendAtCommand_Response("imeino=865733024598757","OK",100);
Delayms(1000);
uart1str("HTTP data sent\r\n");
uart1str("\r\n");
clear();
SendAtCommand_Response("AT+QHTTPREAD=30\r","CONNECT",3000);
Delayms(200);
clear();
SendAtCommand_Response("AT+QIDEACT\r","DEACT OK",500);
Delayms(200);
clear();
}