안드로이드(1.5)에서 웹API를 사용하는 어플을 작성하고 있습니다.

HttpURLConnection 클래스를 이용하고 있습니다.

Base Authorization 을 사용해서

받아오는 쪽 (GET) API 사용에는 문제가 없습니다만,

문제는 보낼 때 (POST) 입니다.

setRequestProperty 메소드를 이용해서
content-tepy 를 application/x-www-form-urlencoded
content-length 를 URLEncoder 통한 content의 바이트length 로 정해주고

content를 기록하기 위해 getOutputStream() 을 호출하는데서 문제가 생깁니다.
문제는 content를 쓰기 위해서 getOutputStream()를 호출 하는 순간에
getResponseCode() 를 호출한거 처럼 프레임이 전송되어 버립니다.


패킷 스니퍼링 툴로 뜯어보니
POST 패킷이 먼저 날아가고
Continuation or non-HTTP traffic 라는 패잇이 뒤따라 날아갑니다 ( 이 패킷에 OutputStream에 write 한 내용이 들어 있습니다.)

그런데 항상 response는 content 내용을 제공해야 한다며 거부되었다고 돌아옵니다.

테스트를 위해 getOutputStream() 까지만 호출하고 그 이후 부분을 적절히 주석 처리 해보았습니다만, getResponseCode() 를 호출 하지 않아도 예의 POST 패킷이 전송되고, 내용이 없다는 응답만이 돌아옵니다.


위의 코드에서
Base Authorization 하는 부분을 제거하면, OutputStream에 write 한 내용이 별도의 패킷으로 분리되지 않고 한 프레임으로 전송이 됩니다. (Response는 인증 되지 않았다고 옵니다.)



getOutputStream() 을 호출할때, 이전 프레임이 전송되어 버리는게 정상인지?
그리고, 두개의 프레임으로 쪼개지는 것은 왜 그런것인지?

해결책이 있는지 궁금합니다...


도와주세요 ㅠㅠ