2017-11-28 7 views
1

HTTP GETリクエストから取得したテキストを解析する必要があります。私はNodeMCUでLuaを使用していますが、私はあまりそれに精通していません。私は、それをHTTPレスポンスを印刷するときluaでHTTPレスポンス本文を取得するには?

私は応答をフェッチすると、一度に1行を分割するスクリプトを使用しています。このスクリプトを使用して

local nStart, nEnd = string.find(c, "\n\n") 
if (nEnde == nil) then 
    nStart, nEnd = string.find(c, "\r\n\r\n") 
end 
c = string.sub(c,nEnd+1) 
print("length: "..string.len(c)) 
data = mysplit(c, "\n") -- fill the field with filenames 

HTTP GETリクエストは、この

GET /lua/node.php?id=4022029&list HTTP/1.1 
Host: mydomain.com 
Accept: */* 
User-Agent: Mozilla/4.0 (compatible; esp8266 Lua;) 

のように見えます私はmydomain.com/lua/node.php?id=4022029を入力すると、この

HTTP/1.1 200 OK 
Date: Tue, 28 Nov 2017 01:05:12 GMT 
Server: Apache 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Pragma: no-cache 
Set-Cookie: PHPSESSID=23p8rtds43pd1662ncm5cjhrl3; path=/ 
Transfer-Encoding: chunked 
Content-Type: text/html; charset=utf-8 

のように見えますlist、私はファイルのリストを他のテキストのように取得しますが、このスクリプトは何も取得していません。体がないように見えます。私はここで何が欠けていますか? HTTPデータがチャンクエンコードされていないからデータをフェッチするとき

私のスクリプトが動作しているが、私はチャンクエンコーディングからそれをフェッチすることはできませんよ

更新、。

答えて

1

転送エンコード:あなたはヘッダはチャンクの長さと内容で構成されて一つ以上のチャンクに続くされるべきであることを意味する、chunked encodingを使用しているために接続しているサーバ

チャンク。コンテンツの読み込みが完了していないか、使用しているライブラリが何らかの理由でチャンクされたコンテンツを処理していないようです。

+0

HTTPがチャンク化されていないローカルホストで動作させることができました。私はそのサーバー上のエンコーディングを変更することができないので、チャンクされたままになります。私はそのデータを解析する方法を理解する必要があります。 – emir

関連する問題