3

首先,谁能帮助我,我从心底感谢你。这非常令人沮丧。执行 GET 请求时出现 603 错误。

好的。我正在使用 sim900 并想向 no-ip.com 的更新服务器发送 HTTP 获取请求。这里给出了更新 URL 的格式 -> http://www.noip.com/integrate/request

我创建了一个免费帐户并希望从 sim900 更新我的域名(格式为“xyz.ddns.net”),因为我将把它连接到微控制器并将其配置为像服务器一样工作并将数据发送到一台电脑(数据将是一些传感器数据。)使用像 noip 这样的动态 dns 服务对我从我的工作电脑连接到我的设置非常有帮助,因为每当用户按下时,电脑都会从 MCU 请求传感器数据GUI 界面中的按钮。

我使用的命令是这些->

AT //Just to check
AT+CSQ // To check the signal quality
AT+CGATT=1 //Attach to a GPRS network
At+CIPSHUT //to close any earlier session 
AT+SAPBR =3,1,"CONTYPE","GPRS" //I am using context ID 1
AT+SAPBR = 3,1,"APN","airtelgprs.com" 
AT+SAPBR=4,1 // This prints out the expected output with the updated APN and CONTYPE
AT+SAPBR =1,1 

//Now I open a HTTP session
AT+HTTPINIT 
AT+HTTPPARA="URL", "http://myusername:mypassword@dynupdate.no-ip.com/nic/update?hostname=xyz.ddns.net" //The my ip part is optional according to the no-ip guys.

AT+HTTPPARA="REDIR","1"
AT+HTTPPARA="CID","1" //Actually CID is 1 by default. Still typed this command. No difference.
AT+HTTPACTION=0 //GET request

Output of this is: 0,603,0 

SIMComm 文档说这意味着 DNS 错误。我在上述命令或设置中遗漏了什么导致此错误?如果你们需要更多信息,请告诉。

再次提前感谢。

4

1 回答 1

0

根据我发送这样的更新请求总是失败的经验,Dyndns 文档解释了如何发送 RAW HTTP 请求。我用过它并且工作得很好。检查 No-ip 文档以获取确切的原始 Http 请求。

Dyndns 文档提到了您用于 Web 浏览器和实用程序的方法。

URL 中的身份验证

对于可以解析 URL 中的身份验证部分的 Web 浏览器或实用程序(fetch、curl、lwp-request)。

http://username:password@members.dyndns.org/nic/update?hostname=yourhostname&myip=ipaddress&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG

原始 HTTP GET 请求

实际的 HTTP 请求应类似于以下片段。请注意,有最少的标题集。请求后应发送一个空行。

片段 base-64-authorization 应该由 Base 64 编码的用户名:密码字符串表示。

GET /nic/update?hostname=yourhostname&myip=ipaddress&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG HTTP/1.0 Host: members.dyndns.org Authorization: Basic base-64-authorization User-Agent: Company - Device - Version Number

请注意,尽管允许并处理 POST 请求,但我们不鼓励开发人员使用它们。我们可能随时停止处理 POST 请求,恕不另行通知。

于 2015-01-05T08:44:27.537 回答