Я экспериментирую с Java-апплетами и общаюсь между сервлетом и апплетом. При попытке получить входной поток из моего объекта URLConnection возникает ошибка HTTP 501.
Я знаю, что ошибка 501 означает, что я пытаюсь выполнить действие, для которого соединение не было настроено (в моем случае операция GET), но я подумал, что мой код ниже принимает входные данные, потому что я говорю conn.setDoInput (true ); .
Может ли кто-нибудь дать мне какой-нибудь совет, почему я не могу получить входной поток и как это исправить?
Ошибка:
In messageServlet (): Сбой: java.io.IOException: сервер вернул код ответа HTTP: 501 для URL: http: //localhost:8000/TestServlet.class
Мой код приведен ниже (я прокомментировал, где выбрасывается исключение), также, если вам интересно, http: // localhost: 8000 - это moch-сервер, который я настроил со скриптом python и который работает, потому что подключение и получение поток вывода не выдает исключение.
//this code occurs in my class TextApplet::messageServlet()
//I am attempting to send a string to my servlet class TestServlet,
//then read a string that the servlet sends back
try
{
URL servletUrl = new URL( "http://localhost:8000/TestServlet.class" );
URLConnection conn = servletUrl.openConnection();
conn.setDoInput( true );
conn.setDoOutput( true );
conn.setUseCaches( false );
conn.setDefaultUseCaches (false);
conn.setRequestProperty ("Content-Type", "application/octet-stream");
OutputStream out = conn.getOutputStream();
out.write( message.getBytes() );
out.flush();
out.close();
// receive result from servlet
InputStream in = conn.getInputStream(); // Exception Occurs HERE
BufferedReader reader = new BufferedReader(new InputStreamReader( in ));
String result = reader.readLine();
in.close();
return result;
}
catch ( IOException e )
{
System.out.println( "In messageServlet(): " + e );
msgBox.setText( msgBox.getText() + "\nIn messageServlet(): Failure: " + e );
}
catch ( Exception e )
{
System.out.println( "In messageServlet(): " + e );
msgBox.setText( msgBox.getText() + "\nIn messageServlet(): Failure: " + e );
}
return null;
}