В случае, если вам нужно получить ресурс изображения от localhost, он не работает.

аюсь отправить почтовый запрос на URL с помощью HttpURLConnection (для использования cUrl в Java). Содержимое запроса - xml, и в конце приложение обрабатывает xml и сохраняет запись в базе данных, а затем отправляет ответ в виде строки xml. Приложение размещено на Apache-Tomcat локально.

Когда я выполняю этот код из терминала, в базу данных добавляется строка, как и ожидалось. Но исключение выдается следующим образом при получении InputStream из соединения

java.io.FileNotFoundException: http://localhost:8080/myapp/service/generate
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1401)
    at org.kodeplay.helloworld.HttpCurl.main(HttpCurl.java:30)

Вот код

public class HttpCurl {
    public static void main(String [] args) {

        HttpURLConnection con;

        try {
            con = (HttpURLConnection) new URL("http://localhost:8080/myapp/service/generate").openConnection();
            con.setRequestMethod("POST");
            con.setDoOutput(true);
            con.setDoInput(true);

            File xmlFile = new File("test.xml");

            String xml = ReadWriteTextFile.getContents(xmlFile);                

            con.getOutputStream().write(xml.getBytes("UTF-8"));
            InputStream response = con.getInputStream();

            BufferedReader reader = new BufferedReader(new InputStreamReader(response));
            for (String line ; (line = reader.readLine()) != null;) {
                System.out.println(line);
            }
            reader.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
  }

Это сбивает с толку, потому что исключение прослеживается до строкиInputStream response = con.getInputStream(); и, кажется, нет никакого файла, вовлеченного для FileNotFoundException.

Когда я пытаюсь открыть соединение с XML-файлом напрямую, это исключение не выдается.

Сервисное приложение использует Spring Framework и Jaxb2Marshaller для создания xml ответа.

Класс ReadWriteTextFile взят изВот

Благодарю.

Редактировать: Ну, это сохраняет данные в БД и отправляет обратно код состояния 404 одновременно.

Я также попытался сделать локон с помощью php и распечататьCURLINFO_HTTP_CODE который оказывается 200.

Любые идеи о том, как мне отладить это? И сервис, и клиент находятся на локальном сервере.

Постановили: Я мог бы решить проблему после обращения кответ на самом себе.

Кажется, HttpURLConnection всегда возвращает ответ 404 при подключении к URL с нестандартным портом.

Добавление этих строк решило это

con.setRequestProperty("User-Agent","Mozilla/5.0 ( compatible ) ");
con.setRequestProperty("Accept","*/*");

Ответы на вопрос(7)

Ваш ответ на вопрос