Apache HttpClient & Default Headers

Status
Nicht offen für weitere Antworten.

Taneeda

Aktives Mitglied
Hallo zusammen,

Ich benutze nun seit einiger Zeit das HttpClient Framework (HttpClient - HttpComponents HttpClient Overview) von Apache um einen Http Test Tool zu programmieren. Aufgabe des Tools ist es Anfragen über einen Testprobanden, sprich z.B. einen Proxy, an einen Server abzusetzen und die Antworten entgegen zu nehmen und auszuwerten.

Um den Testproband vollständig testen zu können, auch auf Fehler in der Anfrage hin, soll es möglich sein die Anfragen und Antworten vollständig definieren zu können. Soweit klappt das auch, lediglich bei den Header in der Anfrage habe ich ein Problem.

Das Problem ist, dass der DefaultHttpClient des Frameworks, per default, die Header Host und Connection hinzufügt. Dies würde ich gerne unterbinden um das Fehlen dieser Header im Testproband testen zu können.

Weißt jemand wie ich die Header Host und Connection ausschalten kann, sprich, den Client so einstellen kann, dass er diese Header nicht standardmäßig hinzufügt?

Gruß Taneeda
 
M

maki

Gast
Ich benutze nun seit einiger Zeit das HttpClient Framework (HttpClient - HttpComponents HttpClient Overview) von Apache um einen Http Test Tool zu programmieren
Wahrscheinlich Off-Topic, aber dir ist klar das es sehr viele fertige Frameworks gibt die das leisten?
 

Taneeda

Aktives Mitglied
Eigentlich nicht, das mache ich von der Arbeit aus. Das Ziel ist eine Test-Datenbank mit einer Reihe bestimmter Tests für die Software aufzubauen um die Tests nicht jedesmal von Hand ausführen zu müssen.

Ich hätte natürlich auch mir selbst eine Socket-Verbindung aufbauen können und dann an den Server schicken was ich will. Das Framework habe ich genommen um das Tool gegebenenfalls um HTTPS, Authentifizierung und Cookies, etc. ... erweitern zu können.

Das Programm selbst läuft, nur diese Header müssen weg, die sind das Problem. Man soll einstellen können, ob die Host und Connection standardmäßig mitgesendet werden sollen oder nicht.

Daher auch meine Frage ob das möglich ist und wenn ja, wie man das macht. Ich suche schon eine gefühlte Ewigkeit nach einer Möglichkeit, finde aber einfach nichts.
 
M

maki

Gast
Eigentlich nicht, das mache ich von der Arbeit aus. Das Ziel ist eine Test-Datenbank mit einer Reihe bestimmter Tests für die Software aufzubauen um die Tests nicht jedesmal von Hand ausführen zu müssen.
Wie gesagt, ist Off-Topic und hilft dir nicht wirklich, aber das gibt es bereits (Maven2, Ant, etc. pp.).
 

Taneeda

Aktives Mitglied
Was meinst du mit Off-Topic?

Ist ja schön, wenn es das schon gibt, das ist aber nicht die Antwort auf meine Frage...

Was hat Maven2 und Ant mit meinem Problem mit den Headers der HttpComponents Frameworks zu tun? Das versteh ich nicht...
 

Ebenius

Top Contributor
Was meinst du mit Off-Topic?

Ist ja schön, wenn es das schon gibt, das ist aber nicht die Antwort auf meine Frage...
:lol: Genau das bedeutet off topic; eine Bemerkung die nicht zum Thema gehört. :lol:

In anderen Worten: maki wollte Dich nur am Rande darauf hinweisen, dass es eine Menge Werkzeuge gibt, die Dich beim Testen / Verteilen / Bauen unterstützen können. Das ist nicht wirklich eine Antwort auf Deine Frage. Deswegen schrieb maki, es sei "off topic".

Ebenius
 

Taneeda

Aktives Mitglied
aso, dachte gerade, dass Thema würde in das Forum "Off" gehören... danke für die Erleuchtung ^^
 
M

maki

Gast

Taneeda

Aktives Mitglied
Danke für den Tip Maki. Hab mir das angesehen, hat leider auch nicht geholfen.

Mittlerweile, nach einer unendlichen Sucher in der HttpCore/HttpClient API, bin ich nun endlich auf die Ursache gestoßen.

In meiner Implementierung benutze ich den DefaultHttpClient, welcher von AbstractHttpClient erbt. Der Client benutzt nun standardmäßig einen HttpProcessor (BasicHttpProcessor). Über diesen wird das Interface HttpRequestInterceptor angesprochen. Mit dieser Schnittstelle implementiert das Framework Anforderungen des HTTP Protokolls, die verlangen, dass eine minimale HTTP Anfrage einen Host und Connection Header besitzen muss. Diese werden nun über dieses Interface zu jeder Anfrage hinzugefügt.

Um nun diese Header nicht jeder Anfrage hinzuzufügen, müssen diese Interceptors vom Client entfernt werden.

Java:
HttpClient client = new DefaultHttpClient();
...
/**
* RequestInterceptors adds MUST Headers (defines by the
* RFC2616) to each request/response.
* 
* RequestConnControl:    Connection header
* RequestTargetHost:    Host header
*/
((DefaultHttpClient)client).removeRequestInterceptorByClass(
    RequestConnControl.class);
((DefaultHttpClient)client).removeRequestInterceptorByClass(
    RequestTargetHost.class);

RequestConnControl fügt einer Anfrage den Connection Header hinzu, RequestTargetHost den Host Header. Durch entfernen dieser Interceptors werden diese Header nun auch nicht mehr den Anfragen hinzugefügt.

Damit wäre das Problem nun endlich gelöst *freu* :D
Ich hoffe, die Beschreibung hilft...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D HTTP Apache-HttpClient/UNAVAILABLE (java 1.4) Netzwerkprogrammierung 18
G apache httpClient Problem. Netzwerkprogrammierung 5
M Apache HTTPClient Server log ausgeben ?! Netzwerkprogrammierung 3
N HTTP Apache 4.2.1 HttpClient 302 nach Login und auf den weiteren Seiten. Netzwerkprogrammierung 5
R Apache HttpClient File Download? Netzwerkprogrammierung 3
M need org.apache.commons.httpclient.* Netzwerkprogrammierung 8
K Login via apache httpclient Netzwerkprogrammierung 4
T HTTP Apache Commons HttpClient Bibliothek Netzwerkprogrammierung 2
lordcarlos HTTP Apache HttpClient, post und login. Netzwerkprogrammierung 2
T apache HTTPClient einloggen Netzwerkprogrammierung 2
Q HTTPS mit Apache HttpClient Netzwerkprogrammierung 4
C HTTPS mit Apache HTTPClient Netzwerkprogrammierung 1
M org.apache.commons.httpclient.HttpClient Netzwerkprogrammierung 3
Nuiton FTP Apache Commons: FTPClient und Sicherheit Netzwerkprogrammierung 9
N FTP FTP Client invalid IPv6 address (Apache Commons Net API) Netzwerkprogrammierung 6
D Apache Mina Serial: Error Netzwerkprogrammierung 2
0 Apache Commons File Object bekommen Netzwerkprogrammierung 4
W HTTP Apache HttpComponents und GZIP Netzwerkprogrammierung 2
F Apache commons net SFTPClient Netzwerkprogrammierung 5
D Apache CXF, JAX-WS Problem bei Arrays - einfacher Server Netzwerkprogrammierung 2
M Apache Solr doc & pdf Upload Netzwerkprogrammierung 8
C apache commons net ftp bei upload unvollständig Netzwerkprogrammierung 3
R HTTP Apache HTTP Client: Request mit angehängter Datei Netzwerkprogrammierung 2
R Apache Mina - Hilfestellung Netzwerkprogrammierung 32
D Apache Mina und GWT Servlet Netzwerkprogrammierung 4
N SFTP apache keine Verbindungaufbau möglich Netzwerkprogrammierung 6
dayaftereh Fragen zu Apache Mina? Netzwerkprogrammierung 5
Kr0e Apache Mina -> await() Netzwerkprogrammierung 30
B Tomcat Apache Server Netzwerkprogrammierung 6
J org.apache.http.auth.NTCredentials Netzwerkprogrammierung 2
A org.apache.commons http client in Netbeans einbinden Netzwerkprogrammierung 3
Kr0e Apache Mina Problem Netzwerkprogrammierung 2
G apache von außen zugänglich machen Netzwerkprogrammierung 5
1 Upload problem! org.apache.commons.net.ftp Netzwerkprogrammierung 3
S Google Search Webservice mit Apache Axis realisieren? Netzwerkprogrammierung 2
I Apache http-client: Problem beim Proxyaufruf Netzwerkprogrammierung 2
S Applet und JWS auf Apache-Axis (SOAP) Netzwerkprogrammierung 8
J Antwort eines Soaprequests parsen mittels org.apache.soap Netzwerkprogrammierung 2
B Via Java Datei zu PHP-Script auf Apache hochladen Netzwerkprogrammierung 4
A http request per socket an apache server Netzwerkprogrammierung 5
B HttpClient - Server (Jetty) - getInputStream - EOF Netzwerkprogrammierung 3
B HttpClient Netzwerkprogrammierung 2
M HTTP HTTPClient Authentication - Quickr Server Netzwerkprogrammierung 8
H Java 1.4 HTTPClient Content von PutMethod Netzwerkprogrammierung 4
P HttpClient - Daten einer Website "unvollständig" Netzwerkprogrammierung 5
M Dateiupload mittels HttpClient Netzwerkprogrammierung 3
F FileUpload mit commons HttpClient Netzwerkprogrammierung 17
H HTTP Login mit POSTMethod und httpClient Netzwerkprogrammierung 5
B HTTP Probleme mit HttpClient? Netzwerkprogrammierung 2
H Bilder mit HttpClient hochladen Netzwerkprogrammierung 3
T HttpClient - Senden via Post Netzwerkprogrammierung 12
M httpclient kann sich nicht auf asp.net Seite anmelden Netzwerkprogrammierung 2
M Seltsame Fehlermeldung (httpclient) Netzwerkprogrammierung 6
A Jakarta Commons HTTPClient: Mehrere Requests gleichzeitig Netzwerkprogrammierung 2
E HttpClient und return Problem Netzwerkprogrammierung 6
K Bad Request nach Form Login in Jakarta HttpClient Netzwerkprogrammierung 4
J Jakarta HTTPClient Netzwerkprogrammierung 5
D Problem beim holen einer PHP-Seite via HttpClient Netzwerkprogrammierung 19
S mit HttpClient Seiteninhalt lesen Netzwerkprogrammierung 8
P jakarta.HttpClient: Port bei GetMethod angeben Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben