void __fastcall TForm1::Button1Click(TObject *Sender)
{
OleVariant URL = "
http://www.google.com/";
OleVariant FLAGS = 0;
OleVariant FRAME = "_blank";
String username = "xxx";
String password = "yyy";
String PostData = "username=" + username + "&password=" + password;
OleVariant Header = "Content-Type: application/x-www-form-urlencoded\r\n";
int Bound[2] = { 0, PostData.Length() + 1 };
Variant vPostData = VarArrayCreate(Bound, 1, varByte);
for(int i=1, k=0; i <= PostData.Length(); i++, k++) {
VarArrayPut(vPostData, PostData[i], &k, 0);
}
this->CppWebBrowser->Navigate2(URL, FLAGS, FRAME, vPostData, Header);
VarClear(vPostData);
}
위와 같은 식으로 해보면 실제적으로 웹서버로 보내진 HTTP Request 패킷이 POST 형태 라는
것을 첨부한 그림을 통해서 알수 있을 겁니다.
C++ 빌더는 Variant 타입 인덱스에 대한 operator 오버로드를 별도로 제공해 주고있지 않기 때문에
스트링을 varByte 타입으로 변환 할 때 델파이와 달리 C++ 에선 위와 같은 식으로 처리할 필요가
있습니다. 웹서버 쪽에서의 닷넷 Active Server Page 코드는 생략합니다.