2016-09-14 5 views
0

Я новичок в веб-сервисе. Я пытаюсь понять влияние запросов на отправку на стороне сервера с клиентской стороны. Если я использую подход CASE 1, я могу получить значение из параметра запроса URL.POST с использованием параметра запроса в сравнении с writeBytes

Однако, если сообщение происходит с использованием второго подхода, как сервер получает эти данные? В заголовке, параметре запроса или потоке?

чехол - 1

 URL url = url("http://serviceendpoint?q=value"); 
     connection = (HttpURLConnection) url.openConnection(); 
     connection.setRequestMethod("POST"); 

чехол -2

 URL url = url("http://serviceendpoint"); 
     String urlParameters="value"; 

     connection = (HttpURLConnection) url.openConnection(); 
     connection.setRequestMethod("POST"); 

     //Send request 
     DataOutputStream wr = new DataOutputStream(connection.getOutputStream()); 
     wr.writeBytes(urlParameters); 
     wr.close(); 

ответ

0

В случае 2, значение переменной urlParameters (строка "значение") будет записано как тело POST запрос. Вы получите его на стороне сервера из тела необработанного запроса. Поскольку вы написали прямые данные, сервер не увидит поля формы или пары параметров/значений параметров, которые он может проанализировать, код сервера должен будет прочитать тело запроса как данные и сделать с ним соответствующую вещь. В зависимости от сервера вам также может потребоваться установить тип содержимого MIME для запроса «text/plain» или другой тип, который указывает, какие данные присутствуют, стандартные типы содержимого POST «application/x-www-form- urlencoded "или" multipart/form-data "приведет к тому, что сервер попытается проанализировать тело для пар имя/значение в указанной кодировке, которая завершится неудачей.