Я пишу программу на JAVA для размещения большого количества XML-документов по определенному веб-адресу, в дополнение к большому количеству другой обработки данных, которая не имеет никакого отношения к этому вопросу. Единственная проблема в том, что я ожидаю обработки около 90 000 записей. При отправке XML-документа каждая запись занимает приблизительно 10 секунд, 9 из которых - получение ответа от сервера после POST.
У меня вопрос: есть ли способ отправить данные POST на веб-сервер, а затем проигнорировать ответ сервера для экономии времени?
Вот фрагмент кода, который доставляет мне неприятности. Для перехода от «writer.close» к «con.getResponseCode ()»
требуется около 9 секунд в соответствии с системным таймером.
URL url = new URL(TargetURL);
con = (HttpsURLConnection) url.openConnection();
//Login with given credentials
String login = (Username)+":"+(Password);
String encoding = new sun.misc.BASE64Encoder().encode(login.getBytes());
con.setRequestProperty ("Authorization", "Basic " + encoding);
// specify that we will send output and accept input
con.setRequestMethod("POST");
con.setDoInput(true);
con.setDoOutput(true);
con.setConnectTimeout(20000) ; // long timeout, but not infinite
con.setReadTimeout(20000);
con.setUseCaches (false);
con.setDefaultUseCaches (false);
// tell the web server what we are sending
con.setRequestProperty ( "Content-Type", "text/xml" );
OutputStreamWriter writer = new OutputStreamWriter( con.getOutputStream() );
writer.write(data);
writer.flush();
writer.close();
//****This is our problem.*****//
int result = con.getResponseCode();
System.err.println( "\nResponse from server after POST:\n" + result );