2011-07-13 20 views
2

私は研究目的でTelit GL-865 GSM/GPRSモデムキットに取り組んでいます。私はシリアルポートを使って自分のPCに接続し、パテを使って端末にアクセスしました。telit GL 865 GSM/GPRSモデムを使用したGPRS経由のインターネット

私は成功したなどのATは、音声通話を行う、SMSを受信/送信するコマンドをすべて、私もAT + CGDCONT使用してGPRSコンテキストを設定することができます

を実行し、SKTD#AT使用してサーバーへの接続を開き、ことができGETとPOSTリクエストを送信します。私はまた、すべてのヘッダーでHTTP応答を正しく取得します。

しかし、一部のウェブサイトでは、適切な回答が得られません。たとえば。 - 私が送った場合www.google.com :I CGIスクリプトをテストすることができませんアクセスwww.wiley.comまた

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> 

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

を私は次の応答を取得します。私はCONNECTをAT#STKDへの応答として取得しますが、要求ヘッダーの入力を完了する前にNO CARRIERメッセージが表示されます。

+0

心(http://stackoverflow.com/questions/19614635/cant-send- – Ammar

答えて

2

私はこの問題をほぼ解決しました。

HTTPの最初の問題302ので、私は再び応答で指定した「場所」に、新たなGETリクエストを送信するには、whileループで私のコードを記述する必要がちょうどHTTPリダイレクト要求です

また、www.wiley.comのアクセスに関する2番目の問題は、手動で入力するのではなく、CONNECTを取得した後でリクエストヘッダーを貼り付けてEnterキーを押すだけで解決します。だから私は問題は遅延のために発生するタイムアウトのためだと思う。私がプログラムでこれをやっているとき、それは瞬時になるので、私はそれについて心配する必要はありません。

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 
+0

こんにちは@Niko Gamulin、私は応答を正しく取得していますが、私はあなたの例でも見られるHTTP応答に問題があります。問題は、および/またはのところにHTTP応答で返される乱数/文字/コードです。あなたの例で見ると、 '<!doctype html>'の後に** 0 **が表示されます。これらの迷惑メールの文字か、サーバーだけがそれを送信しますか?私はそれらの文字にしたくないので、ブラウザにデータを渡す必要があります。ブラウザでページを開くと、その文字は表示されません。 – androidFan

関連する問題