Hallo,
ich habe ein merkwürdiges Problem:
Ich benutze zur Datenübertragung zwischen 2 Servlet den http-cllient von Jakarta.
Vorher hatte ich das alles mit httpUrlConnection gemacht.
Damit konnte ich auch sehr grosse Dateien übertragen.
Nun hab ich komplett auf den http-client umgestellt.
Die Datenübertragung läuft immer noch, aber leider immer nur bis zu einer gewissen (sehr kleinen) Dateigröße.
Wird diese überschritten, krieg ich vom (wegen SSL vorgeschalteten) Apache die Fehlermeldung:
Google sagt mir nun, das das nur bei "GET" passiert, da bei "POST" die Länge einer URL theoretisch unbegrenzt ist.
Tja, nun verstehe ich es nicht mehr, denn ich verwende die Post-Methode bei der Übertragung, hier der Code:
Relevant dürfte hierbei das sein:
Das passt doch soweit alles, wo ist denn das Problem?
An den Apache-Einstellungen kann es eigentlich nicht liegen, weil an denen hab ich nichts verändert. Und mit "Post" über httpUrlConnection gingen ja auch große Dateien....
Ich bin verwirrt, hat jemand ne Idee?
ich habe ein merkwürdiges Problem:
Ich benutze zur Datenübertragung zwischen 2 Servlet den http-cllient von Jakarta.
Vorher hatte ich das alles mit httpUrlConnection gemacht.
Damit konnte ich auch sehr grosse Dateien übertragen.
Nun hab ich komplett auf den http-client umgestellt.
Die Datenübertragung läuft immer noch, aber leider immer nur bis zu einer gewissen (sehr kleinen) Dateigröße.
Wird diese überschritten, krieg ich vom (wegen SSL vorgeschalteten) Apache die Fehlermeldung:
Code:
request failed: URI too long (longer than 8190)
Google sagt mir nun, das das nur bei "GET" passiert, da bei "POST" die Länge einer URL theoretisch unbegrenzt ist.
Tja, nun verstehe ich es nicht mehr, denn ich verwende die Post-Methode bei der Übertragung, hier der Code:
Code:
protected String sendRequest(String urlParams) {
String answer = null;
HttpClient httpClient = new HttpClient();
if(networkParams.isUseProxy()) {
httpClient.getHostConfiguration().setProxy(networkParams.getProxyHost(), networkParams.getProxyPort());
logger.info("we DO use a proxy: host:" + networkParams.getProxyHost() + "Port: " + new Integer(networkParams.getProxyPort()).toString());
}
if(networkParams.isUseProxyCredentials()) {
httpClient.getState().setProxyCredentials(
new AuthScope(networkParams.getProxyHost(), networkParams.getProxyPort()),
new UsernamePasswordCredentials(networkParams.getProxyUserName(), networkParams.getProxyUserPassword()));
}
String url = networkParams.getRemoteProtocoll() +
networkParams.getRemoteDestinationAdress() +
":" +
networkParams.getRemoteDestinationPort() +
networkParams.getRemoteDestinationPath();
HttpMethod method = new PostMethod(url);
method.setQueryString(urlParams);
try {
int statusCode = httpClient.executeMethod(method);
if (statusCode != HttpStatus.SC_OK) {
logger.error(OutputConstants.ERR_WRONG_RESPONSE + CommonOutput.LOG_SPACER + statusCode);
return null;
}
answer = method.getResponseBodyAsString();
} catch (HttpException e) {
logger.error(e.getMessage());
logger.error(e);
return null;
} catch (IOException e) {
logger.error(e.getMessage());
logger.error(e);
return null;
}
finally {
method.releaseConnection();
}
return answer;
}
Relevant dürfte hierbei das sein:
Code:
HttpMethod method = new PostMethod(url);
Das passt doch soweit alles, wo ist denn das Problem?
An den Apache-Einstellungen kann es eigentlich nicht liegen, weil an denen hab ich nichts verändert. Und mit "Post" über httpUrlConnection gingen ja auch große Dateien....
Ich bin verwirrt, hat jemand ne Idee?