Файл не найден исключение при чтении connection.getInputStream () - PullRequest
0 голосов
/ 08 апреля 2011

Я отправляю запрос на URL-адрес сервера, но получаю исключение «Файл не найден», но при просмотре этого файла через веб-браузер все выглядит нормально.

URL url = новый URL (serverUrl); connection = getSecureConnection (url);

            // Connect to server
            connection.connect();

            // Send parameters to server
            writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream(), "UTF-8"));
            writer.write(parseParameters(CoreConstants.ACTION_PREFIX + actionName, parameters));
            writer.flush();

            // Read server's response
            reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));

когда я пытаюсь получить getInputStream, он выдает файл ошибки, который не найден. Это страница контроллера ASPX.

Ответы [ 2 ]

1 голос
/ 08 апреля 2011

Если запрос работает нормально в браузере, но не в коде, и вы убедились, что URL-адрес одинаков, то проблема, вероятно, связана с тем, как вы отправляете свои параметры на сервер. В частности, эта часть:

writer.write(parseParameters(CoreConstants.ACTION_PREFIX + actionName, parameters));

Возможно, есть ошибка в функции parseParameters()?

Но в целом я бы порекомендовал использовать что-то немного более высокого уровня, чем необработанный URLConnection. HtmlUnit и HttpClient являются хорошими вариантами, особенно если учесть, что ваш запрос довольно прост. Я использовал оба, чтобы выполнить подобное взаимодействие клиент / сервер в ряде приложений. Я предлагаю пересмотреть ваш код, чтобы использовать одну из этих библиотек, а затем посмотреть, не выдаст ли она ошибку.

0 голосов
/ 16 мая 2011

Хорошо, наконец, я обнаружил, что проблема была на стороне IIS, она была решена в .Net 4.0. для предыдущей версии перейдите в ваш web.config и укажите validateRequest == false

...