2016-09-14 2 views
0

Webサービスを初めて使用しています。私は、クライアント側からのリクエストの投稿によるサーバー側の影響を理解しようとしています。 CASE 1アプローチを使用すると、URLクエリパラメータから値を取得できます。クエリパラメータとwriteBytesを使用したPOST

ただし、2番目の方法で投稿が行われている場合、サーバーはどのようにこのデータを受信しますか?ヘッダー、クエリパラメータ、またはストリームとして

ケース - 1

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

ケース-2ケース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

urlParameters変数(文字列 "値")の値は、POSTのボディとして書き込まれます要求。生の要求本体からサーバー側で取得します。あなたはまっすぐなデータを書いたので、サーバはフォームフィールドやパラメータ名/値のペアを解析できないので、サーバコードはリクエストボディをデータとして読み込み、適切なことを行う必要があります。サーバーの種類によっては、リクエストのMIMEコンテンツタイプを「text/plain」に設定する必要があります。また、「application/x-www-form- urlencoded "または" multipart/form-data "を指定すると、サーバーは指定されたエンコーディングで失敗する名前/値のペアのボディを解析しようとします。

関連する問題