# per Webservice mit GLS kommunizieren



## Roland1 (17. Apr 2019)

Hallo

Ich sitze jetzt schon seit Tagen, komme aber leider nicht zurecht.

Hab das bisher in VBA laufen, brauche das aber jetzt in JAVA.

Folgenden Code habe ich, auch die Propertys sind alle aus VBA (dort als "RequestHeader")
Nur die Authorization ist eine andere.


```
private void test_webservice_5(){    // immer timeout statt antwort   
        
        String address = "https://api.gls-group.eu/public/v1/shipments";
        try {
            URL url = new URL(address);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setDoOutput(true);
            conn.setRequestMethod("POST");        // POST
            conn.addRequestProperty("Method", "POST");
            conn.setRequestProperty("Content-Type", "application/json");
            conn.addRequestProperty("Authorization", "Basic MDQwMTIzNDU3ODphYmNkMTIz");    // falsche benutzerdaten !!   

            conn.setReadTimeout(10000);
            conn.setConnectTimeout(10000);
            conn.setRequestProperty("Host", "api.gls-group.eu");
            conn.setRequestProperty("Accept-Language", "de");
            conn.setRequestProperty("Accept-Encoding", "gzip,deflate");
            conn.setRequestProperty("Accept", "application/json");
            conn.setRequestProperty("Content-Type", "application/json");
            String input = getBody();
            // austausch:
            
// <======= Hier timeout
            OutputStream os = conn.getOutputStream();   // <======= Hier timeout
// <======= Hier timeout
            os.write(input.getBytes());
            os.flush();
            if (conn.getResponseCode() != 200)
            if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {   
            throw new RuntimeException("Failed : HTTP error code : "
            + conn.getResponseCode());
            }
               String type = conn.getContentType();
                        if (type == null) {
                            return;
            }
            
            
            
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        
    }
```

Ich bekomme immer einen Timeout, verwendet jemand die GLS API über Java ???
Wen ich zumindest eine Fehlermeldung von GLS bekommen würde, wüsste ich zumindest, daß mich der hört.

lg Roland


----------



## mihe7 (17. Apr 2019)

Wenn ich Deinen Code laufen lasse (getBody() durch "XYZ" ersetzt), dann erhalte ich


```
Exception in thread "main" java.lang.RuntimeException: Failed : HTTP error code : 401
    at Test.main(Test.java:34)
```

Dabei handelt es sich um die RuntimeException, die hier geworfen wird:

```
if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {   
            throw new RuntimeException("Failed : HTTP error code : "
            + conn.getResponseCode());
            }
```


----------



## Roland1 (17. Apr 2019)

Danke, du hast mir sehr geholfen, wird durch die Firewall unseres Dienstleisters Blockiert.
Wenn ich die umgehe funktioniert der Code.

DANKE !!!!


----------

