Hallo zusammen,
ich baue über eine Anwendung eine Request über HttpURLConnection zu einem Servlet auf. In dem Request gebe ich Parameter mit als GET.
Das Funktioniert auch wunderbar in den meisten Fällen. Ich bekomme den Response 200.
In einem Fall ist es so, dass hier sehr viele Parameter mitgegeben werden. Der Parameter String ist über 8000 Zeichen lang.
Ich hatte gedacht ich versuche es dann mit POST, aber das Ergebnis ist immer gleich:
Exception: java.net.SocketException: Connection reset
Hier mal Code als Beispiel.
Der Parameter String query sieht so ähnlich aus. Ich kann jetzt nicht den ganzen String mit mehr als 8000 Zeichen posten und anonymisieren:
Den Aufbau der HTTPCon führe ich so aus:
Der Request kommt gar nicht beim Servlet an. Dort wird nämlich die Methode gar nicht angesprungen.
Es muss mit der Menge an Parametern zu tun haben, weil es ja bei einer geringeren Anzahl, die mir nicht bekannt ist, funktioniert.
Ich hätte jetzt gedacht wenn ich POST sage dann ist die Stringlänge der Parameter egal, aber ist leider nicht so.
Hat jemand eine Idee?
Grüße und Danke franzy
ich baue über eine Anwendung eine Request über HttpURLConnection zu einem Servlet auf. In dem Request gebe ich Parameter mit als GET.
Das Funktioniert auch wunderbar in den meisten Fällen. Ich bekomme den Response 200.
In einem Fall ist es so, dass hier sehr viele Parameter mitgegeben werden. Der Parameter String ist über 8000 Zeichen lang.
Ich hatte gedacht ich versuche es dann mit POST, aber das Ergebnis ist immer gleich:
Exception: java.net.SocketException: Connection reset
Hier mal Code als Beispiel.
Der Parameter String query sieht so ähnlich aus. Ich kann jetzt nicht den ganzen String mit mehr als 8000 Zeichen posten und anonymisieren:
Java:
StringBuilder query = TODO=REGISTER&BERECHTIGUNG=I&AKTION=K&P1=N&MODUL=OFFICE&P2=test&p3=-&BERECHTIGUNG=Y&AKTION=K&P1=L&MODUL=OFFICE&P2=test2&p3=-......
Den Aufbau der HTTPCon führe ich so aus:
Java:
URI uri = new URI(new URI("http://abc").getScheme(), new URI("http://abc").getAuthority(), new URI("http://abc").getPath(), query.toString(), null);
HttpURLConnection httpConnection = (HttpURLConnection) uri.toURL().openConnection();
httpConnection.setDoInput(true);
httpConnection.setDoOutput(false);
httpConnection.setRequestMethod("GET");
httpConnection.setRequestProperty("User-Agent", "Mozilla/5.0");
int responseCode = httpConnection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) // success
{
....
}
Der Request kommt gar nicht beim Servlet an. Dort wird nämlich die Methode gar nicht angesprungen.
Es muss mit der Menge an Parametern zu tun haben, weil es ja bei einer geringeren Anzahl, die mir nicht bekannt ist, funktioniert.
Ich hätte jetzt gedacht wenn ich POST sage dann ist die Stringlänge der Parameter egal, aber ist leider nicht so.
Hat jemand eine Idee?
Grüße und Danke franzy