From 36ed8679b869c17f84e1a46db4f702470385c5ea Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Mon, 30 Mar 2015 09:29:22 +0800 Subject: [PATCH] you can set host in httpc header --- lualib/http/httpc.lua | 7 ++++++- test/testhttp.lua | 14 +++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lualib/http/httpc.lua b/lualib/http/httpc.lua index a73d5710..823d33b5 100644 --- a/lualib/http/httpc.lua +++ b/lualib/http/httpc.lua @@ -14,10 +14,15 @@ local function request(fd, method, host, url, recvheader, header, content) for k,v in pairs(header) do header_content = string.format("%s%s:%s\r\n", header_content, k, v) end + if header.host then + host = "" + end + else + host = string.format("host:%s\r\n",host) end if content then - local data = string.format("%s %s HTTP/1.1\r\nhost:%s\r\ncontent-length:%d\r\n%s\r\n%s", method, url, host, #content, header_content, content) + local data = string.format("%s %s HTTP/1.1\r\n%scontent-length:%d\r\n%s\r\n%s", method, url, host, #content, header_content, content) write(data) else local request_header = string.format("%s %s HTTP/1.1\r\nhost:%s\r\ncontent-length:0\r\n%s\r\n", method, url, host, header_content) diff --git a/test/testhttp.lua b/test/testhttp.lua index 9fd0804c..cba1488a 100644 --- a/test/testhttp.lua +++ b/test/testhttp.lua @@ -1,16 +1,24 @@ local skynet = require "skynet" local httpc = require "http.httpc" +local dns = require "dns" skynet.start(function() print("GET baidu.com") - local header = {} - local status, body = httpc.get("baidu.com", "/", header) + local respheader = {} + local status, body = httpc.get("baidu.com", "/", respheader) print("[header] =====>") - for k,v in pairs(header) do + for k,v in pairs(respheader) do print(k,v) end print("[body] =====>", status) print(body) + local respheader = {} + dns.server() + local ip = dns.resolve "baidu.com" + print(string.format("GET %s (baidu.com)", ip)) + local status, body = httpc.get("baidu.com", "/", respheader, { host = "baidu.com" }) + print(status) + skynet.exit() end)