такая фигня случается редко.. в подавляющем большинстве случаев все работает замечательно. Код вроде во флэше вроде как стандартный.
самый обычный URLLoader c соответствующими листенерами

Код AS1/AS2:
_loader = new URLLoader();
_loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onLoaderHTTPStatus);
_loader.addEventListener(Event.COMPLETE, onLoaderComplete);
_loader.addEventListener(IOErrorEvent.IO_ERROR, onLoaderIOError);
_loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onLoaderSecurityError);
..................
var request:URLRequest = new URLRequest(_queue[0].fullURL);
if (_queue[0].post)
{
request.method = URLRequestMethod.POST;
request.data = _queue[0].postData;
}
_loader.load(request);
в onLoaderComplete() из e.currentTarget.data беру вернувшийся ответ и преобразовываю его в XML
response = new XML(e.currentTarget.data);
Это преобразование пришлось запихать в try catch как раз для случаев когда XML оказывается битым.