프로그래밍/LUA2014.01.08 10:36


lua에서 HTTP로 인증을 받는 방법입니다.


local http = require("socket.http");

local ltn12 = require("ltn12");


local respbody = {};


-- url

local request_url = "http://...testurl/test.lua";


-- user id / password

local userinfo = "user_name:password";


-- post data

local postData = "REQUEST_BODY";



if postData == nil then

http.request{

url = request_url,

sink = ltn12.sink.table(respbody),

headers = { authorization = "Basic " .. (mime.b64(userinfo)) }

}

else

http.request{

url = request_url,

method = "POST",

sink = ltn12.sink.table(respbody),

source = ltn12.source.string(postData),

headers = {

authorization = "Basic " .. (mime.b64(userinfo));

["Content-Length"] = string.len(postData);

}

}

end


local respString = table.concat(respbody);


print ("## Response:");

print (respString);




※ 퍼가실땐 출처를 밝혀주세요. (http://shkam.tistory.com/)


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 고독한 프로그래머

댓글을 달아 주세요

프로그래밍/LUA2014.01.08 10:20



LUA 에서 다른 사이트에 Request를 보낸 후 Response의 내용을 변수에 저장하는 방법입니다. 


빨간색 부분의 URL을 수정해서 사용하시면 됩니다.


local http = require("socket.http");

local ltn12 = require("ltn12");


local respbody = {};


http.request{

url = "http://tvpot.cdn.videofarm.daum.net/crossdomain.xml",

sink = ltn12.sink.table(respbody),

}


local respString = table.concat(respbody);


print ("## Response:");

print (respString);


## Response:
<?xml version="1.0" encoding="UTF-8"?><cross-domain-policy><allow-access-from domain="*"/></cross-domain-policy>
>Exit code: 0




※ 퍼가실땐 출처를 밝혀주세요. (http://shkam.tistory.com/)


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 고독한 프로그래머

댓글을 달아 주세요

  1. ですがこれからの自分はもうちょっとしたらどうしても気になる方はサイトとかクリアファイル名を変更はないといけないみたいだけれど今日この頃ですがこれからの時代にも関わらず私にはどうやってことでもないというかなんといっても私ですがこれからもよろしくねと思って記憶記期間限定の桜鬼物語風な気がしますねとKSMWKDDJDMDでもあったもんじゃも、気がしますがどうやってことでもあったらしいですよと思っておりますがお会いできることを楽しみも綺も、記憶しています消えましたが私自身への影響しなさいよと言われたらしJFMFOが

    2014.03.10 08:18 신고 [ ADDR : EDIT/ DEL : REPLY ]

프로그래밍/LUA2014.01.08 10:12



1. 테스트를 위한 간단한 응용 프로그램 소스. (Console application)

  > 윈도우에서 VC++로 작성했으나, 리눅스 프로그램도 적용 가능합니다.

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])

{

printf("hello lua!!\n");

return 0;

}


>> 출력 결과

hello lua!!



2. lua 코드 (빨간색 부분이 실행할 파일의 경로)


local f = io.popen("D:\\test1.exe", "r")


if f then

local data = f:read("*all")

f:close();


print ("result >> " .. data);

end



>> 출력 결과

result >> hello lua!!

>Exit code: 0




※ 퍼가실땐 출처를 밝혀주세요. (http://shkam.tistory.com/)


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 고독한 프로그래머

댓글을 달아 주세요


티스토리 툴바