2017-06-20 4 views
0

Ich habe Probleme beim Senden durch eine Java-Anwendung die Daten auf eine Seite in PHP. Grundsätzlich habe ich eine Seite in PHP, die die Daten über die POST-Methode erhält und erstellt eine Klasse in Java, die diese Daten per Post sendet. Das Problem ist, dass ich in Java den Bezeichner, der auf der PHP-Seite angefordert wird, nicht einfüge. Wie Sie sehen können, habe ich den Wert auf der Seite in PHP durch den filter_input (INPUT_POST, "user") Code-Schnipsel, aber in der Java-Anwendung gebe ich nicht diese „user“ Kennung in den Informationen, die ich senden mag. Also, es gibt keine Möglichkeit, dass die PHP-Seite den Wert, den die Java-Anwendung sendet, "aufnimmt". Hat jemand Ideen, wie man dieses Problem lösen kann? Vielen Dank im Voraus!
Seite PHP:Wie man per Post in Java eine Information an eine PHP-Seite sendet?

<?php 

    require_once './vendor/autoload.php'; 
    $controller = new App\CWS\Controller(); 

    if($_SERVER['REQUEST_METHOD'] == "POST"){ 
     $controller->registerUser(filter_input(INPUT_POST, "user")); 
    } 

?> 

Klasse verantwortlich für die Verbindung und das Senden von Daten in der Java-Anwendung:

public class WebClient { 
    public String post(String json) { 
     try { 
      URL url = new URL("http://localhost//CWS//cadastrar_usuario.php"); 
      HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
      connection.setRequestMethod("POST"); 
      connection.setRequestProperty("Content-type", "application/json"); 
      connection.setRequestProperty("Accept", "application/json"); 

      connection.setDoOutput(true); 

      PrintStream output = new PrintStream(connection.getOutputStream()); 
      output.println(json); 

      connection.connect(); 

      Scanner scanner = new Scanner(connection.getInputStream()); 
      String resposta = scanner.next(); 
      return resposta; 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 
} 

Antwort

0
 PrintStream output = new PrintStream(connection.getOutputStream()); 
     output.println(json); 

Damit Sie die Daten als JSON codierten Text an den Server senden. Was auch immer an diesem Punkt in dem JSON-String gesendet werden. Wenn Sie die Daten für "Benutzer" nicht im JSON abgelegt haben, müssen Sie sie vor dem Senden einfügen.

+0

Die JSON-String bereits die Benutzerdaten enthält, habe ich sicher, dass in der Main.java Klasse, ist der Punkt hier, dass die Anwendung an die angegebene Adresse verbindet, aber die PHP-Seite hat keine Möglichkeit, diese Informationen, da geschickt zu bekommen Ich gebe keinen Identifier in der Java-Anwendung. Verstanden? – CloudAC

Verwandte Themen