Heim  >  Artikel  >  Backend-Entwicklung  >  Rufen Sie die nativen Daten der Post-Anfrage ab

Rufen Sie die nativen Daten der Post-Anfrage ab

巴扎黑
巴扎黑Original
2016-11-12 15:17:311948Durchsuche

Manchmal handelt es sich bei den von einigen Anforderungen übermittelten Daten nicht um den gemeinsamen Parameternamen: Das Schlüssel-Wert-Paar der Parameterwert-Zuordnungsbeziehung. Beispielsweise handelt es sich bei den vom öffentlichen WeChat-Plattformserver an die vom Entwickler angegebenen URL übermittelten Daten um eine XML-Datei Die Zeichenfolge kann derzeit weder über request.getParameter("Parametername") von PHP noch über $_POST['Parametername'] von PHP abgerufen werden. Für diese Art von Daten lautet die Lösung wie folgt:

  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);

Zusätzliche Hinweise: getReader() und getInputStream() können nur einmal auf Anfrage aufgerufen werden und können nicht gleichzeitig aufgerufen werden.

PHP-Code

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

Zusätzliche Erklärung:

HTML aus dem Enctype-Attribut gibt an, wie Formulardaten codiert werden, bevor sie an den Server gesendet werden Der Standardwert ist „application/x-www-form-urlencoded“.

application/x-www-form-urlencoded kodiert die übertragenen Daten in Form von Schlüssel-Wert-Paaren. Das Backend kann

text/plain direkt über request.getParameter() abrufen. Die Daten werden als Klartext ohne Steuerelemente oder Formatierungszeichen codiert.

multipart/form-data, die übertragenen Daten müssen das Multimedia-Übertragungsprotokoll verwenden. Da Multimedia eine große Datenmenge überträgt, ist festgelegt, dass die hochgeladene Datei die Post-Methode sein muss.
Beim Hochladen von Dateien sollte der verwendete Kodierungstyp „multipart/form-data“ sein, der Textdaten senden kann und auch das Hochladen von Binärdaten unterstützt.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn