HTTPClient : Request Problem / Daten an Server senden

eaglestar

Mitglied
Hallihallo,

Folgender Code samt Fehlermeldung stellt mich vor ein Problem für das ich bis jetzt keine Lösung gefunden habe.
(Ich versuche eine Datei an einen Server zu senden.)

Code:
Java:
public void sendfile(String cookie) {
	       HttpClient client = new HttpClient();
	       PostMethod postMethod = new PostMethod("http://URL");
	        client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
	 
	        postMethod.setRequestHeader( "Content-type", "text/xml" );
	        postMethod.setRequestHeader( "User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7" );
	        postMethod.setRequestHeader( "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" );
	        postMethod.setRequestHeader( "Accept-Language", "de-de,de;q=0.8,en-us;q=0.5,en;q=0.3" );
	        postMethod.setRequestHeader( "Accept-Encoding", "gzip,deflate" );
	        postMethod.setRequestHeader( "Accept-Charset", "UTF-8,*" );
	        postMethod.setRequestHeader( "Keep-Alive", "300" );
	        postMethod.setRequestHeader( "Connection", "keep-alive" );
	        postMethod.setRequestHeader( "Content-Type", "multipart/form-data; boundary=---------------------------6540767923990" );
	        postMethod.setRequestHeader("Cookie", cookie);

	        
	        
	        postMethod.addParameter("actionType", "importExport");
	        postMethod.addParameter("passwordIn", "12345678");
	        postMethod.addParameter("import", "Import Configuration");
	        postMethod.addParameter("password1", "");
	        postMethod.addParameter("password2", "");
	        File f = new File("c:/config.xml");
	        try {
				postMethod.setRequestBody(new FileInputStream(f));
				if ( f.length() < Integer.MAX_VALUE )
					postMethod.setRequestContentLength((int)f.length());
				else
					postMethod.setRequestContentLength(EntityEnclosingMethod.CONTENT_LENGTH_CHUNKED);

			} catch (FileNotFoundException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
	 
	        try {
				client.executeMethod(postMethod);
				System.out.println("FERTIG");
			} catch (HttpException e) {
				System.out.println("HTTPsendeFehler: " + e.getMessage());
			} catch (IOException e) {
				System.out.println("IOsendeFehler: " + e.getMessage());
			}
	 
	        try {
				System.out.println(postMethod.getResponseBodyAsString());
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}

Fehlermeldung:
Code:
17.03.2009 11:14:03 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: I/O exception (org.apache.commons.httpclient.NoHttpResponseException) caught when processing request: The server XXXXXXX failed to respond
17.03.2009 11:14:04 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: Retrying request
HTTPsendeFehler: Unbuffered entity enclosing request can not be repeated.
null


Desweiteren werden mir folgende Methoden als veraltet (deprecated) angezeigt:
Code:
1. postMethod.setRequestBody(new FileInputStream(f)); //Zeile 26
2. postMethod.setRequestContentLength((int)f.length()); //Zeile 28
3. postMethod.setRequestContentLength(EntityEnclosingMethod.CONTENT_LENGTH_CHUNKED); //Zeile 30


Hat jemand auf diesen Gebiet Erfahrung und einen Tipp parat?

Gruß
eagle
 

Neue Beiträge

Zurück