4

Luaからサーバーと通信してユーザーを認証しようとしています。これは私のリクエスト関数がどのように見えるかです:

function http.send(url)
    local req = require("socket.http")
    local b, c, h = req.request{
        url = url,
        redirect = true
    }
    return b
end

sinkただし、パラメータを指定しなかったため、データが破棄されていることに気付きました。ファイル/テーブルにダウンロードするのではなく、ダウンロードしたデータを文字列全体として返すことができるようにしたい。どうすればいいですか?

4

1 に答える 1

7

を使用ltn12.sink.tableして、結果を1つずつ特定のテーブルに収集できます。次に、を使用table.concatして結果の文字列を取得できます。

のドキュメントからの使用例ltn12.sink

-- load needed modules
local http = require("socket.http")
local ltn12 = require("ltn12")

-- a simplified http.get function
function http.get(u)
  local t = {}
  local status, code, headers = http.request{
    url = u,
    sink = ltn12.sink.table(t)
  }
  return table.concat(t), headers, code
end
于 2013-03-16T19:53:57.393 に答える