2014-01-03 2 views
0

Привет, Я пытаюсь реализовать сервер, который принимает строку, затем генерирует и возвращает другую строку на стороне клиента, но она не работает.Отправить строку с использованием Java Servlet через HTTP-запрос

Вот что я пробовал: сервер:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    .... 
    String str = "something"; 

    // Return the queueId. 
    OutputStreamWriter writer = new OutputStreamWriter(response.getOutputStream()); 
    writer.write(str); 
    writer.flush(); 
    writer.close(); 
} 

Клиент:

String URL = "http://localhost:8080/" 
    String serverURL = URL + "servlet?param=" + someParam; 
    final URL url = new URL(serverURL) 
    final URLConnection connection = url.openConnection(); 
    connection.setDoOutput(true); 

    final BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); 

    System.out.println(br.readLine()); 

Но как-то br.readLine() возвращает нуль. Какая сторона в этом случае не так?

Заранее спасибо.

+0

Это не должно быть 'окончательный URL URL = новый URL (ServerURL + ул); // Я думаю ... что такое URL и serverURL'? –

+0

@Elliott Frisch Это была опечатка, когда я вводил этот вопрос, исправил это. Я думаю, что это не ошибка в этой программе. – user959974

ответ

0

Ваш клиент должен измениться следующим образом. Так как вы используете doPOST не doGet

String URL = "http://localhost:8080/" 
String serverURL = URL + "servlet?param=" + someParam; 
final URL url = new URL(serverURL) 
final HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setDoOutput(true); 
connection.setRequestMethod("POST"); 

final BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); 

System.out.println(br.readLine()); 

Ваш код, как это может быть вызовом doGet

+0

Спасибо, что сработало. Должен ли я использовать get или post в этом случае? или я должен использовать оба? – user959974

+0

Это зависит от вашей бизнес-логики. POST обычно используется для модификации данных, а GET обычно используется для поиска данных – shazin

Смежные вопросы