PutMethod - Uhrzeit aus Response

huckleberry

Bekanntes Mitglied
Hallo,

Ich habe eine PutMethode welche einen Inhalt an ein Server schickt:

Java:
		PutMethod putMethod = new PutMethod( get_Host() );
		putMethod.setDoAuthentication(false);
		try {
			putMethod.setRequestHeader("Content-Type", "text/plain");
			putMethod.setRequestEntity(new StringRequestEntity(content, null, null));
			putMethod.setContentChunked(true);
			httpClient.executeMethod(putMethod);
			String response = putMethod.getResponseBodyAsString();
			TpegCanListener.resetStringToSend(response);
			LOG.logDebug("Statuscode: {0}", String.valueOf(putMethod.getStatusCode()) );
			LOG.logDebug("RequestHeaders: {0}", String.valueOf(putMethod.getRequestHeaders().toString()) );
			LOG.logDebug("Response: {0}", response);

Ich würde gerne die Uhrzeit aus der Response abgreifen; s. Anhang.

Jemand ne Idee?

Vielen Dank!
 

Anhänge

  • headers.JPG
    headers.JPG
    13,2 KB · Aufrufe: 30
N

nillehammer

Gast
Die
Code:
PutMethod
ist eine Subklasse von
Code:
HttpMethod
. Diese stellt Dir eine Methode
Code:
getResponseHeader(String headerName)
zur Verfügung. Mit dem Namen "Date" kommst Du an den Date-Header ran.

P.S. Ich bin fast sicher, dass Du die falsche Methode benutzt. Müsste es nicht eher ein POST sein?
 

huckleberry

Bekanntes Mitglied
Den String kann ich nun erfolgreich abgreifen, jedoch kann ich nicht parsen.

Debugausgabe:
Date: Thu, 28 Jun 2012 15:31:25 GMT

Code:
[JAVA=1]
String dateString = putMethod.getResponseHeader("Date").toString();
LOG.logDebug("getResponseHeader(Date): {0}", dateString );

SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz");
Date d;
try {
d = format.parse(dateString);
LOG.logDebug("Date: {0}", d.toString() );
} catch (ParseException e) {
e.printStackTrace();
}
[/code]

Bei Zeile 7 kommt folgender Fehler:
java.text.ParseException

Mein Verdacht ist das "Date: " am Anfang der Ausgabe oben muss weg?
 
S

SlaterB

Gast
die Ausgabe
> Date: Thu, 28 Jun 2012 15:31:25 GMT
passt nicht zu
> LOG.logDebug("getResponseHeader(Date): {0}", dateString );
da 'getResponseHeader' fehlt,

viel eher passt die Ausgabe zu Zeile 8:
> LOG.logDebug("Date: {0}", d.toString() );
da sowohl 'Date: ' am Anfang stimmt, als auch der Rest gut als d.toString() zu interpretieren ist

das spricht dann komplett gegen eine Exception in Zeile 7..,
andererseits hast du 'java.text.ParseException', vielleicht von einem zweiten Durchlauf?


->
räume erstmal deine Logs und sonstigen Abläufe auf,
du kannst nicht über 'Date: ' in einem String spekulieren während du gleichzeitig 'Date: ' in deinen Log-Ausgaben hast!..

jede Methode muss klar kontrolliert sein, dazu gehört im Zweifelsfall so viel mit jeweils unmissverständlichen Log-Inhalt:
Java:
Ausgabe vor dem try-Catch mit Parameter, evtl. Zeit,
try {
Ausgabe im try bevor es kritisch wird

kritische Stelle

Ausgabe im try nach kritischer Stelle, zeigt an (wenn vorhanden) dass keine Exception auftrat
} catch ... {
   Ausgabe im catch der Exception
} finally {
   nachrangige Ausgabe zum Abschluss, sollte immer vorhanden sein, sonst nix sicher zu interpretieren
}
Ausgabe nach all der Arbeit, kommt nicht wenn Methode mit einer nicht abgefangenen 
(Runtime-)Exception verlassen wird
 

Ähnliche Java Themen


Oben