C/S 에서 WEBPAGE 를 POST로 호출할때 문제가 생겨서....
<form name="Test0" method="post" action="http://www.test.com">
<input type="hidden" name="encodparam" value="base64 value"> <= 요기 value 값이 문제
<input type="submit" value="로그온">
</form>
위처럼 input type 의 encodparam 의 value 값을 아래 값을 넣어 주는데
'<userid>kskimkey</userid><pwd>kskimkey</pwd><compnum>1000000009</compnum>'
값을 base64 encoding 하여 넘겨 주어야 합니다. base64로 하면 아래와 같은 값이 나오고
value="PHVzZXJpZD5rc2tpbWtleTwvdXNlcmlkPjxwd2Q+a3NraW1rZXk8L3B3ZD48Y29tcG51bT4xMDAwMDAwMDA5PC9jb21wbnVtPg== "
이값을 value 부분에 넣고 post 로 넘기는데 문제가 발생하여 고수님들에게 조언을 구하고자 합니다.
문제는 값은 정상적으로 넘어가는것 처럼 보이는데 WEB 페이지에서 넘겨온값을 조사해보면
value="PHVzZXJpZD5rc2tpbWtleTwvdXNlcmlkPjxwd2Q+a3NraW1rZXk8L3B3ZD48Y29tcG51bT4xMDAwMDAwMDA5PC9jb21wbnVtPg== "
value="PHVzZXJpZD5rc2tpbWtleTwvdXNlcmlkPjxwd2Q a3NraW1rZXk8L3B3ZD48Y29tcG51bT4xMDAwMDAwMDA5PC9jb21wbnVtPg== "
(요기 + 기호가 빠지고 스페이스가... )
+ 기호가 어디로 같는지 감쪽같이 없어져 버렷네요... 어디에서 문제가 발생한건지...오리무중...감도안오고
C/S 프로그램에서 웹과 연동하는걸 처음 하다보니 문제가 발생하면 어디서 부터 찾아야 할지 망막 하네요...
아래는 호출한 델파이 소스 입니다.
var
vWebAddr, vPostData, vFlags, vFrame, vHeaders: OleVariant;
iLoop: Integer;
stURL, stPostData: String;
begin
stURL := 'http://localhost/read.asp';
stPostData := encodparam='+StrTobase64('<userid>kskimkey</userid><pwd>kskimkey</pwd><compnum>1000000009</compnum>' ) ;
if Length(stPostData)> 0 then
begin
vHeaders:= 'Content-Type: application/x-www-form-urlencoded'+ #10#13#0;
vPostData:= VarArrayCreate([0, Length(stPostData)], varByte);
for iLoop := 0 to Length(stPostData)- 1 do begin
vPostData[iLoop]:= Ord(stPostData[iLoop+ 1]);
end;
vPostData[Length(stPostData)]:= 0;
end;
vWebAddr:= stURL;
vFlags := 1; //새창으로 띄우기
WebBrowser1.Navigate2(vWebAddr, vFlags, vFrame, vPostData, vHeaders);
end;
오늘의 질문과 답변이 다른 많은 이들에게 큰 힘이 되었으면 합니다.