2015-09-25 2 views
0

У меня есть сервер, который принимает POST-запрос и отвечает потоком данных. Я видел, что на URL Я могу открыть соединение или поток. Однако в потоке нет способа выписать данные:Отправлять POST и читать потоковый ответ

URL url = new URL("..."); 
url.openConnection(); //either I open a connection which has a output stream, but no input 
url.openStream(); //or I open a stream, but I cannot write anything out 

Как я могу решить эту проблему элегантно?

+1

Довольно хороший здесь объяснений: http://stackoverflow.com/questions/2793150/using-java-net-urlconnection-to-fire- and-handle-http-requests – GPI

ответ

1

Пример фрагмента кода для использования OutputStream.

Примечание. Вы можете установить типы контента &, чтобы отправить URL-адреса только для URL-адресов.

URL obj = new URL(url);//some url 
    HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 
    con.setDoOutput(true); 
    DataOutputStream wr = new DataOutputStream(con.getOutputStream()); 
    String urlParams = "fName=xyz&lname=ABC&pin=12345"; // some parameters 
    wr.writeBytes(urlParams); 
    wr.flush(); 
    wr.close(); 

Посмотрите подробное объяснение в этом article1 и article2

+0

Я бы поставил под сомнение именование переменной 'urlParams', поскольку ее содержимое передается в BODY HTTP-запроса, а не в самом URL-адресе. (Тот факт, что URL-адрес нужно кодировать, когда POST-запрос приложения/x-www-form-urlencoded не означает, что это параметры URL-адреса). – GPI

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