POST-Request mit json - Abfrage mit Java

Diskutiere POST-Request mit json - Abfrage mit Java im Java Basics - Anfänger-Themen Bereich.
F

Funkeyfreak

Hey,

ich soll mit einer POST-Request mit dem key "json" mit einer Schnittstelle kommunizieren, jedoch habe ich da irgendwie Probleme.

Ich habe sowas noch nie getan und habe mir daher mal Code als Bsp gesucht:

hier habe ich nur das Problem dass wenn ich die Main aufrufen möchte:

Main Datei:
Code:
public static void main(String[] args) throws IOException {
        GetAndPost.MyPOSTRequest();
    }
dass ich diesen Fehler bekomme:
GetAndPost cannot be resolved
at Design.Bestellung.main(Bestellung.java:80)

Brauche ich eine bestimmte lib oder etwas anderes dafür, dass ich GetAndPost ausführen kann?

Außerdem bin ich mir bei den Befehlen nicht sicher, da mir gesagt wurde dass mit "getorders" man alle Bestellungen ausgegeben bekommt aber wie füge ich den Befehl richtig in den Code?


Code:
public static void POSTRequest() throws IOException {
       final String POST_PARAMS = "{\n" + "\"getorders\": Test Ordre,\r\n" + "\n}";
        System.out.println(POST_PARAMS);
        URL obj = new URL("https://hauteuchdrum.informatik.uni-siegen.de/propra/aufgaben/ws1920/index.php");
        HttpURLConnection postConnection = (HttpURLConnection) obj.openConnection();
        postConnection.setRequestMethod("POST");
       postConnection.setRequestProperty("getorders", "getorders");
        postConnection.setRequestProperty("Content-Type", "application/json");
        postConnection.setDoOutput(true);
        java.io.OutputStream os = postConnection.getOutputStream();
        os.write(POST_PARAMS.getBytes());
        os.flush();
        os.close();
        int responseCode = postConnection.getResponseCode();
        System.out.println("POST Response Code :  " + responseCode);
        System.out.println("POST Response Message : " + postConnection.getResponseMessage());
        if (responseCode == HttpURLConnection.HTTP_CREATED) { //success
            BufferedReader in = new BufferedReader(new InputStreamReader(postConnection.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();
            // print result
            System.out.println(response.toString());
        } else {
            System.out.println("POST NOT WORKED");
        }
    }
 
F

Funkeyfreak

Edit: habe neuen Code aber kriege nur die Ausgabe:

{
"getorders"

}
POST Response Code : 200
POST Response Message : OK



Beschreibung vom Befehl "getorders": https://gyazo.com/a0b7fa0c5e092e5fed3afc113570c622
-> eigentlich will ich nur den befehl getorders abschicken und so die Liste aller Bestellungen bekommen...



Code:
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;

import org.json.JSONArray;
import org.json.JSONObject;

public class JSONTester {
    
    private static String dirPath = "https://hauteuchdrum.informatik.uni-siegen.de/propra/aufgaben/ws1920/index.php";
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        File file = new File (dirPath + "//array_complex.json");
        try {
             final String POST_PARAMS = "{\n" + "\"getorders\" \r\n" + "\n}";
                System.out.println(POST_PARAMS);
             URL obj = new URL("https://hauteuchdrum.informatik.uni-siegen.de/propra/aufgaben/ws1920/index.php");
             HttpURLConnection postConnection = (HttpURLConnection) obj.openConnection();
             postConnection.setRequestMethod("POST");
             postConnection.setRequestProperty("connection", "Keep-Alive");
             postConnection.setDoOutput(true);
             java.io.OutputStream os = postConnection.getOutputStream();
                os.write(POST_PARAMS.getBytes());
                os.flush();
                os.close();
                int responseCode = postConnection.getResponseCode();
                System.out.println("POST Response Code :  " + responseCode);
                System.out.println("POST Response Message : " + postConnection.getResponseMessage());
                if (responseCode == HttpURLConnection.HTTP_CREATED) { //success
                    BufferedReader in = new BufferedReader(new InputStreamReader(postConnection.getInputStream()));
                    String inputLine;
                    StringBuffer response = new StringBuffer();
                    while ((inputLine = in.readLine()) != null) {
                        response.append(inputLine);
                    }
                    in.close();
                    // print result
                    System.out.println(response.toString());
            
    }
        }
        catch (Exception e) {
            System.out.println();
        }
    }}
 
J

JustNobody

Also generell gilt: Wenn man etwas machen möchte, dann sollte man sich aneignen, was man dafür braucht.
- Als Java Entwickler sind Java Kenntnisse extrem wichtig. Und gewisse Dinge sollten da sitzen. Also eine Methos POSTRequest zu erstellen und dann MyPOSTRequest aufrufen zu wollen finde ich schon heftig, zumal der Compiler ja hilft. (Ähnliches fand sich ja auch schon im anderen Thread.)
- Den Problembereich sollte man sich immer etwas erarbeiten. Ansonsten spielt Dir Dein Prof. bei der Abnahme "Das ist alles nur geklaut" vor. (Die sind doch nicht doof. Die werden diesen Thread leicht finden und die müssten nur ein paar Fragen zum EAN-13 Code stellen und Du wärst garantiert aufgeflogen denke ich mal, denn erarbeitet hast Du dir das nicht nach dem, was ich so gelesen habe ...)
- Es gibt paar Coding Standards, an die man sich halten sollte. Klassennamen werden in PascalCase geschrieben und sind in der Regel Substantive und Methoden werden in camelCase geschrieben und enthalten in der Regel Verben.

Aber wie dem auch immer sei:
Hier spielst Du ein Hase & Igel Spiel mit uns. Das habe ich im anderen Thread mitgemacht, aber das Spiel spiele ich immer nur einmal (wenn überhaupt).
Wieso Hase & Igel: Du lässt uns immer laufen und dann bist du plötzlich da. "Habe neuen Code". Aber dann lässt Du uns wieder blöd losrennen, denn gezielte Informationen haben wir nicht. Was für Code hast Du jetzt? Was gibst Du da aus? (Ok, wird einfach der Request Inhalt sein und dann Response Code und Respone Message - das lässt sich noch etwas aus dem Context ableiten). Aber offensichtlich nutzt Du da etwas, von dem Du keine Ahnung hast. Evtl. willst Du dir einmal die Klassen, die Du verwendest, im Detail ansehen? Da findest du dann bestimmt noch viel mehr. Vor allem wenn man sich etwas mit HTTP auseinander setzt, dann wirst Du Dich freuen, denn es scheint ja (durch Zufall) geklappt zu haben.
 
Thema: 

POST-Request mit json - Abfrage mit Java

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben