Я пытаюсь подключиться к серверу с сообщением POST, запрашивающим сервер подписаться на меня.Затем сервер будет держать http-соединение открытым и отправлять мне асинхронные сообщения с текущими статусами до тех пор, пока я не буду запрашивать отмену подписки или закрытие соединения самостоятельно.У меня проблемы с чтением этих последующих ответов с сервера.Приведенный ниже код подключается к серверу, успешно читает первый ответ и выводит его на консоль.Проблема в том, что после этого он бесконечно читает один и тот же ответ (первый ответ) и выводит его на экран.
Кто-нибудь видит, что я тут напортачил?Я пытаюсь просто наблюдать за следующим асинхронным сообщением от сервера и блокировать, пока оно не придет.Также, если кто-то знает, как зарегистрироваться, чтобы получать уведомления, когда следующее сообщение отображается асинхронно, чтобы мне не пришлось блокировать ожидание, что было бы еще лучше.
public void HttpSubscription()
{
byte[] result = new byte[10240];
try
{
/* Generate the hard coded request data */
final StringBuffer soap = new StringBuffer();
soap.append("<s:Envelope><s:Body><SoapTest1>thing1</SoapTest1></s:Body></s:Envelope>");
// to make HTTP Post request with HttpURLConnection
URL url = new URL("http://192.168.1.110:80/services");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
// then set some properties and make a request
conn.setRequestMethod("POST");
conn.setRequestProperty( "Content-type", "text/xml; charset=utf-8" );
// Get a handle to the output stream
OutputStream OStream = conn.getOutputStream();
// Write the soap data to the output stream
OStream.write(soap.toString().getBytes());
InputStream ResponseStream = conn.getInputStream();
while (true)
{
int len = ResponseStream.read(result);
String value = new String(result);
System.out.println(value);
}
}
catch (Exception e)
{
System.out.println(e);
}
return;
}