C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[66330] Re:IdHTTP1 에서 자꾸 멀티파트로 되네요..
박우성 [solgari] 1780 읽음    2012-02-20 16:57
HTTP에서 POST 방식으로 전송하는 방법에는 두가지가 있는데..
"application/x-www-form-urlencoded" 방식을 사용하려면, TIdMultiPartFormDataStream를 사용하면 안 됩니다.

다음 두가지 방법 중에서 첫번재 방법을 사용하세요.

1. application/x-www-form-urlencoded

TStringList *PostData = new TStringList();

PostData->Values["USER"] = "user";
PostData->Values["PASS"] = "pass";

UnicodeString strResponse = IdHTTP1->Post( L"http://127.0.0.1/test", PostData );

Memo1->Lines->Text = strResponse;



2.multipart/form-data

TIdMultiPartFormDataStream *PostData = new TIdMultiPartFormDataStream();

PostData->AddFormField("USER", "user");
PostData->AddFormField("PASS", "pass" );

UnicodeString strResponse = IdHTTP1->Post( L"http://127.0.0.1/test", PostData );

Memo1->Lines->Text = strResponse;



두가지 방법 모두 한글을 사용할 때는 주의해야 합니다.
서버와 클라이언트 Encoding 을 잘 맞추어줘야 합니다.


김태우 님이 쓰신 글 :
: IdHTTP1->Request->Connection ="keep-alive";
:     IdHTTP1->Request->UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11";
:     IdHTTP1->Request->ContentType = "application/x-www-form-urlencoded";
:     IdHTTP1->Request->Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
:     IdHTTP1->Request->AcceptEncoding = "gzip,deflate,sdch";
:     IdHTTP1->Request->AcceptLanguage ="ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4";
:     IdHTTP1->Request->AcceptCharSet = "windows-949,utf-8;q=0.7,*;q=0.3";
:
:     request->AddFormField("test01",userID->Text);
:     /request->AddFormField("test02",userPW->Text);
:     request->AddFormField("WKK","");
:     IdHTTP1->Post(url, request, response);
:     response->Position = 0;
:     this->Memo1->Lines->Add(response->DataString.c_str());
: 이렇게 코딩 하였습니다..
:
: 그런데 자꾸..패킷을 캡쳐해보면...
:
:
: Connection: keep-alive
: Content-Type: multipart/form-data; boundary=--------022012113736598
: Content-Length: 104
: Host: seowon.seowon.ac.kr
: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
: Accept-Charset: windows-949,utf-8;q=0.7,*;q=0.3
: Accept-Encoding: gzip,deflate,sdch, identity
: Accept-Language: ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4
: User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11
:
: ----------022012113736598
:
:
: 이렇게 캡쳐가 됩니다...
:
: Content-Type 이 멀티 타입으로요... 이유가 무엇인지요..?

+ -

관련 글 리스트
66314 IdHTTP1 에서 자꾸 멀티파트로 되네요.. 김태우 1093 2012/02/20
66330     Re:IdHTTP1 에서 자꾸 멀티파트로 되네요.. 박우성 1780 2012/02/20
66316     Re:IdHTTP1 에서 자꾸 멀티파트로 되네요.. 빌더 1117 2012/02/20
66325         Re:Re:IdHTTP1 에서 자꾸 멀티파트로 되네요.. 김태우 1218 2012/02/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.