Я столкнулся с действительно странной проблемой на одном из сайтов клиентов моей компании.
Наша система пытается отправить HTTP-запросы на один из наших серверов на сайте.
Сервер работает на машине, которая работает в демилитаризованной зоне.
Клиент находится на Java, а сервер - на C #.
Мой код отправляет HTTP-запрос следующим образом:
[Правка - изменен с псевдо-фактического кода]:
Socket s = new Socket();
socket.connect([server address], timeout);
SocketOutputBuffer output = new SocketOutputBuffer (socket);
byte[] buffer = [creating the HTTP request headers]
output.write(buffer);
output.flush();
buffer = [creating the message body]
output.write(buffer);
output.flush();
При отладке клиентского приложения последний «output.flush ()» завершается успешно.
На стороне сервера я вижу, что на стороне сервера были получены только заголовки HTTP.
Странно то, что если я закрою сокет после последней очистки, то тело сообщения поступит на сервер.
Есть мысли?
Большое спасибо.