2

我正在研究 Telit GL-865 GSM/GPRS 调制解调器套件。我已经使用串行端口将它连接到我的电脑,并使用 Putty 获得了终端访问权限。

我可以成功执行所有 AT 命令来发送/接收短信、拨打语音电话等。

我还可以使用 AT+CGDCONT 设置 GPRS 上下文并使用 AT#SKTD 打开与服务器的连接,并且可以发送 GET 和 POST 请求。我还正确地获得了所有标头的 HTTP 响应。

但是对于某些网站,我没有得到适当的回应。例如。- www.google.com 如果我发送:

AT#SKTD=0,80,"www.google.com"
CONNECT
GET /<cr><lf>
<cr><lf>

我得到以下回复:

HTTP/1.0 302 Found
Location: http://www.google.co.in/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Set-Cookie: PREF=ID=80125e212d950ff8:FF=0:TM=1310555250:LM=1310555250:S=lwD7-OUKPeiBwCri; expires=Fri, 12-Jul-2013 11:07:30 GMT; path=/; domain=.google.com
Date: Wed, 13 Jul 2011 11:07:30 GMT
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block

<HTML>
<HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE>
</HEAD>
<BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.in/">here</A>.
</BODY>
</HTML>

也无法访问 www.wiley.com 来测试 CGI 脚本。我收到 CONNECT 作为对 AT#STKD 的响应,但在我完成输入请求标头之前,我收到一条 NO CARRIER 消息。

4

2 回答 2

4

您是否正确建立了 PDP 上下文?

以下是我使用 Telit GM862 使用的命令和响应,它运行良好:

AT#USERID="username" //set username provided by mobile operator
AT#PASSW="password" //set password provided by mobile operator
AT+CGDCONT=1, "IP", "internet","0.0.0.0",0,0
AT#SKTSAV //save settings

AT#GPRS=1 //check if PDP context is established - if it is it should return the IP

+IP: 188.196.98.28

OK

AT#SKTD=0,80,"google.si",0,0

CONNECT

GET / HTTP/1.1<cr><lf> 
Host: www.google.si<cr><lf>
Connection: keep-alive<cr><lf>
<cr><lf>
HTTP/1.1 200 OK
Date: Fri, 27 May 2011 09:39:49 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-2
Set-Cookie: PREF=ID=2420df534f6e850f:FF=0:TM=1306489189:LM=1306489189:S=i3qJtsLHuyMMmV9q; expires=Sun, 26-May-2013 09:39:49 GMT; path=/; domain=.google.si
Set-Cookie: NID=47=VGbr367EMHD9yp5XA61kWaWL37G_zBAIhy1CbRlEr3br0rcdM-H93M3Imfhm1ccDZiKjV2GhK3gZrg_LIbuz2ycgAZsGOGU1a29VXt7UahnmEqxcXMsG2JJc8GfaNsoM; expires=Sat, 26-Nov-2011 09:39:49 GMT; path=/; domain=.google.si; HttpOnly
Server: gws
X-XSS-Protection: 1; mode=block
Transfer-Encoding: chunked

1000
<!doctype html><html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-2"><title>Google</title><script>...</script>
0

NO CARRIER
于 2011-07-21T10:30:32.267 回答
2

我几乎解决了这个问题。

HTTP 302的第一个问题只是一个HTTP 重定向请求,因此我必须在 while 循环中编写我的代码,以再次向Response中指定的“位置”发送一个新的 GET 请求。

关于访问 www.wiley.com 的第二个问题是通过在我获得 CONNECT 后立即粘贴请求标头并按 Enter 来解决的,而不是手动输入。所以我猜这个问题是由于打字延迟而发生的超时。当我在程序中执行此操作时,它将是瞬时的,因此我不必担心。

于 2011-07-14T06:51:09.500 回答