В моем коде я пытаюсь итерировать n раз, собирая клиента и отправляя входной поток на удаленную конечную точку:
for (int i=0; i<=100; i ++) {
Client client = Client.create();
WebResource webResource = client.resource("https://endpoint/EndOfDayRapport/eof_" + System.currentTimeMillis());
SPMResponse response5 = webResource
.type("text/xml").put(SPMResponse.class,myInputStream);
System.out.println(response5);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Входной поток содержит текст сообщения в формате xml.
Я заметил, что на
1-я итерация ... запрос завершается
2-я итерация: ответ 400 неверных запросов ...
3-й 400 плохой запрос ....
и так далее ...
если я изменю значение inputtream на string ... взяв реальный xml и отправив его методом PUT.
1-я итерация ... запрос завершается
2-я итерация ... запрос завершается
3-я итерация ... запрос завершается
и так далее ...
В чем разница? почему он работает со строкой, а не с входным потоком?
(кажется, что входной поток меняется после первой итерации)
По производительности лучше использовать inputtream или string?