HttpURLConnection: запись в OutputStream, получение ответа - PullRequest
0 голосов
/ 06 мая 2019

Я использую этот ответ для записи в HttpURLConnection.Он работает нормально, и я закрываю поток и соединение:

 MultipartEntityBuilder mb = 
 MultipartEntityBuilder.create();//org.apache.http.entity.mime
 mb.addTextBody("foo", "bar");
 mb.addBinaryBody("bin", new File("testFilePath"));
 org.apache.http.HttpEntity e = mb.build();

 URLConnection conn = new URL("http://127.0.0.1:8080/app").openConnection();
 conn.setDoOutput(true);
 conn.addRequestProperty(e.getContentType().getName(), 
 e.getContentType().getValue());//header "Content-Type"...
 conn.addRequestProperty("Content-Length", 
 String.valueOf(e.getContentLength()));
 OutputStream fout = conn.getOutputStream();
 e.writeTo(fout);//write multi part data...
 fout.close();
 conn.getInputStream().close();//output of remote url

просто отлично.Тем не менее, я хотел бы знать ответ сервера (JSON).Как бы я это сделал?Я пытался использовать:

InputStream input = conn.getInputStream();
String inputString = new Scanner(input, "UTF-8").useDelimiter("\\Z").next();
input.close();

Но я получаю ошибку java.util.NoSuchElementException.

В прошлом я использовал только метод conn.connect(), а затем conn.getInputStream(), и он работалхорошо.Почему это не сейчас?Как мне исправить эту ошибку?

...