Skip to content

Instantly share code, notes, and snippets.

@rphillips
Created March 12, 2015 05:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rphillips/384641f12b8580ff643f to your computer and use it in GitHub Desktop.
Save rphillips/384641f12b8580ff643f to your computer and use it in GitHub Desktop.
--[[
Copyright 2015 The Luvit Authors. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS-IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--]]
local http = require('http')
local string = require('string')
local HOST = "127.0.0.1"
local PORT = 10080
local MB = 1024 * 1024
local server = nil
local a = string.rep('a', 1024)
local data = string.rep(a, 1024)
server = http.createServer(function(request, response)
p('server:onConnection')
local postBuffer = ''
p(request)
assert(request.method == "POST")
assert(request.url == "/foo")
assert(request.headers.bar == "cats")
request:on('data', function(chunk)
postBuffer = postBuffer .. chunk
end)
request:on('end', function()
assert(postBuffer == data)
response:write("Hello")
response:finish()
server:close()
end)
end)
server:listen(PORT, HOST, function()
local headers = {
bar = 'cats',
['Content-Length'] = MB
}
local req = http.request({
host = HOST,
port = PORT,
method = 'POST',
path = "/foo",
headers = headers
}, function(response)
end)
req:write(data)
req:done()
end)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment