|
IdConnectionIntercept의 OnSend에서 HTTP Header부분을 파싱, 관련필드에 포함된 특수문자(/r/n)를 공백으로 치환한후 재전송하는 방법으로 문제를 해결하였습니다.
파싱을 할려고 HTTP Header를 들여다 보니 필드의 문자열이 68bytes이상일 경우 개행문자가 자동으로 입력되는 버그(?)가 있는것 같습니다.
향후 비슷한 문제점이 있으신분은 참고하시기 바랍니다.
읽어주셔서 감사합니다.
이태흔 님이 쓰신 글 :
: 안녕하세요.. HTTP Client 개발중에 막히는 부분이 있어서 염치불구하고 질문 올립니다.
:
: HTTP Header의 일부분을 자체적으로 사용할경우 다음과 같이 정의해서 사용할수 있을것 같습니다.
:
: AnsiString szAuth;
: szAuth = "뭐뭐뭐뭐.............";
: IdHTTPX->Request->ExtraHeaders->Values ["Auth"] = szAuth;
:
: 근데 위와 같은 방식으로 HTTP 데이타를 전송할 경우 szAuth에 68bytes이상 보낼경우 짤리는것 같습니다.
: 관련해서 Indy Library Core Module을 들여다봐도 68byte이상을 제한하고 있는 부분은 보이질 않고..
: (Borland C++ Builder 6.0을 설치하면 Default로 설치되는 Indy 8과 별도로 설치한 Indy9에서 동일한 현상이 있는것 같습니다.)
:
: 혹시 비슷한 경험있으신분 계시면 도움 부탁드립니다.
:
:
:
: 읽어주셔서 감사합니다.
|