인디 쿠키매니져를 추가하고 idHttp에 해당 쿠키매니져를 할당
쿠키매니져에 AddServerCookie 메소드를 통해 내용 입력,
단 두번째 파라미터는 TIdURI형식만 받으므로 TIdURI를 생성하여 입력.
TIdURI *pURI = new TIdURI(NULL);
pURI->Host = L"192.168.0.59"; //C# domain변수 해당
IdHTTP1->CookieManager->AddServerCookie(L"USERID=admin", pURI);
String Response = IdHTTP1->Get(L"http://192.168.0.59/");
CodeMaster 님이 쓰신 글 :
: C++ 빌더에서 인디http로 쿠키를 첨부하여 보내는 방법에 대해서 알고 싶습니다.
:
:
: 질문
: 1. 쿠키 생성은 어떻게 하면 되나요?
: - 아래 C#참고 코드 처럼 userid, id, domain의 내용을 담고 싶습니다.
: - 검색을 통해 다른 몇몇 게시물의 내용을 보면
: String변수에 그냥 내용을 적는 분도 계시고, TCookie라는걸 통해서 생성하시는 분도 계신거 같은데 어느게 맞는건지요?
:
: 2. 인디http를 통해서 생성한 쿠키를 Get메소드를 통해 보내고 싶은데, 쿠키값을 어디에 실어 보내면 되나요?
: - 검색을 통해 다른 몇몇 게시물의 내용을 보면
: idHttp->Request->ExtraHeaders에 추가 하는거 같은데 맞는지요?
:
:
: 아래 코드는 참고해 보려고 찾은 C#코드입니다.
:
: public string Get(string url,string userid, string id, string domain)
: {
: string responseMessage = "";
: int timeout = ((int)ar.GetValue("Timeout", typeof(int)) * 1000);
:
: try
: {
: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
: Cookie addCookie = new Cookie(userid, id, "", domain);
: request.CookieContainer = new CookieContainer();
: request.CookieContainer.Add(addCookie);
: request.Timeout = timeout;
: using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
: {
: Encoding encode;
: if (response.CharacterSet.ToLower() == "utf-8") { encode = Encoding.UTF8; }
: else { encode = Encoding.Default; }
:
: using (Stream dataStream = response.GetResponseStream())
: {
: using (StreamReader reader = new StreamReader(dataStream, encode))
: {
: responseMessage = reader.ReadToEnd();
: }
: }
: }
: }
: catch (Exception e)
: {
: throw e;
: }
:
: return responseMessage;
: }
: