Fehler mit HttpUrlConnection bei Redirect
- From: "Jochen Böhringer" <joboe@xxxxxx>
- Date: Tue, 24 Jan 2006 11:00:32 +0100
Hallo zusammen,
ich habe ein Problem beim Einsatz der HttpURLConnection Klasse. Wenn ich den
Content Type einer URL auslesen möchte, die einen Redirect schickt. Hier ein
Ausschnitt aus dem Code:
URL url = new
URL("http://gvbsbetixOS001/scripts/WebObjects/GVBXMLOut.woa/wa/query?iqueryVersion=10&iqueryDoctype=WF_VIEWXMLOUT&iqueryQualifier1=wfname+eq+WH_Komplexer+Auftrag&iqueryQualifier2=wfstepname+eq+A+WF+History");
URLConnection conn = url.openConnection();
conn.setUseCaches(false);
conn.setDoOutput(false);
conn.setDoInput(true);
String contentType = conn.getContentType();
In der letzten Zeile tritt folgende Exception auf:
java.net.MalformedURLException: no protocol:
/scripts/WebObjects/GVBXMLOut.woa/1/wo/aeDQqifrfpQhoHP11EhqQM/0.0
at java.net.URL.<init>(URL.java:579)
at java.net.URL.<init>(URL.java:476)
at java.net.URL.<init>(URL.java:425)
at
sun.net.www.protocol.http.HttpURLConnection.followRedirect(HttpURLConnection.java:1081)
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:675)
at
sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:1169)
at java.net.URLConnection.getContentType(URLConnection.java:381)
Ich habe jetzt den HTTP Traffic mitgeschnitten, den der Internet Explorer
beim Zugriff auf die URL generiert und stelle hier die relevanten Auszüge
zusammen:
Request:
GET
/scripts/WebObjects/GVBXMLOut.woa/wa/query?iqueryVersion=10&iqueryDoctype=WF_VIEWXMLOUT&iqueryQualifier1=wfname+eq+WH_Komplexer+Auftrag&iqueryQualifier2=wfstepname+eq+A+WF+History&user=xmlout&password=ibm
HTTP/1.1
Response
HTTP/1.1 302 Apple
location: /scripts/WebObjects/GVBXMLOut.woa/1/wo/BOKGpV5ctlKdUc3FB9Y3yg/0.0
set-cookie: wosid=BOKGpV5ctlKdUc3FB9Y3yg; version="1";
path=/scripts/WebObjects/GVBXMLOut.woa
set-cookie: woinst=1; version="1"; path=/scripts/WebObjects/GVBXMLOut.woa
content-length: 0
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8; encoding=UTF-8
Request
GET /scripts/WebObjects/GVBXMLOut.woa/1/wo/BOKGpV5ctlKdUc3FB9Y3yg/0.0
HTTP/1.1
Response
HTTP/1.1 200 Apple
Date: Tue, 24 Jan 2006 09:33:14 GMT
Server: Apache/1.3.27 (Win32) mod_ssl/2.8.14 OpenSSL/0.9.7b PHP/4.3.3
x-webobjects-ids-url: yes
x-webobjects-session-id: BOKGpV5ctlKdUc3FB9Y3yg
x-webobjects-application-number: -1
set-cookie: wosid=BOKGpV5ctlKdUc3FB9Y3yg; version="1";
path=/scripts/WebObjects/GVBXMLOut.woa
set-cookie: woinst=1; version="1"; path=/scripts/WebObjects/GVBXMLOut.woa
content-length: 335
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8; encoding=UTF-8
Das heißt, dass der Server mit dem Status 302 die neue location als
relativen Pfad für den Redirect mitschickt. Scheinbar kommt es in der
HttpURLConnection Klasse durch diesen relativen Pfad zu Problemen, da daraus
keine gültige URL gebildet wird. Kennt jemand einen Workaround für das
Problem, oder kann mir die Ursache nennen?
Gruß
Jochen
.
- Follow-Ups:
- Re: Fehler mit HttpUrlConnection bei Redirect
- From: Markus Schönhaber
- Re: Fehler mit HttpUrlConnection bei Redirect
- Prev by Date: Re: Eingelesene bytes von HTTP request/response
- Next by Date: Re: Instantiierung von Klasse scheitert
- Previous by thread: [jTable] Selektierte Zeile im Fokus halten?
- Next by thread: Re: Fehler mit HttpUrlConnection bei Redirect
- Index(es):
Relevant Pages
|