投稿リクエストのネイティブデータを取得する

巴扎黑
リリース: 2016-11-12 15:17:31
オリジナル
1947 人が閲覧しました

一部のリクエストによって送信されるデータは、共通のパラメーター名ではない場合があります。たとえば、WeChat パブリック プラットフォーム サーバーによって開発者の指定された URL に送信されるデータは、パラメーター値のマッピング関係のキーと値のペアです。現時点では、それを渡すことはできません。 java の request.getParameter("パラメータ名") や、php の $_POST['パラメータ名'] を通じて取得することはできません。 この種のデータの場合、解決策は次のとおりです。

追加説明: getReader() と getInputStream() はリクエスト後に 1 回だけ呼び出すことができ、両方を同時に呼び出すことはできません。

Phpコード

  request.setCharacterEncoding("utf-8");
StringBuilder buffer = new StringBuilder();
java.io.BufferedReader reader=null;
try{
/**
* getReader() 
* Retrieves the body of the request as character data using a BufferedReader
* getInputStream() 
* Retrieves the body of the request as binary data using a ServletInputStream.
*/
reader = request.getReader();
String line=null;
while((line = reader.readLine())!=null){
buffer.append(line);
       }
}catch(java.io.IOException e){
e.printStackTrace();
}finally{
if(null!=reader){
try {
reader.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}
}
}
String res = buffer.toString();
System.out.print(res);
ログイン後にコピー

追加説明: enctype属性の

htmlは、サーバーに送信する前にフォームデータをエンコードする方法を指定します。デフォルトのデフォルト値は「application/x-www-form-urlencoded」です。

application/x-www-form-urlencoded は、送信されたデータをキーと値のペアの形式にエンコードします。バックエンドは request.getParameter() を通じて

text/plain を直接取得できます。データはプレーン テキストでエンコードされます。ここで、コントロールや書式設定文字は含まれません。

multipart/form-data、送信されるデータはマルチメディア送信プロトコルを使用する必要があります。マルチメディアは大量のデータを送信するため、アップロードされたファイルはポストメソッドでなければならないと規定されています。

ファイルをアップロードする場合、使用するエンコードタイプは「multipart/form-data」である必要があります。これはテキストデータを送信でき、バイナリデータのアップロードもサポートします。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!