Proxy, Host Header und CoDeeN-Network
Da ich im Moment dabei bin, LastSharp um die Möglichkeit zu erweitern, einen Proxy zu verwenden, habe ich mich einmal schlau gemacht und geschaut, was .NET und C# in diese Richtung bietet. Hierbei bin ich nach kurzem Testen auf ein Problem gestoßen, dass anscheinend bereits mehrere Programmiererhirne gequält hat, letztlich aber nicht wirklich gelöst wurde – auch nicht von mir. (Nur damit niemand zu große Erwartungen in diesen Beitrag setzt.)
Einige Proxys entstammen dem sog. CoDeeN-Network und sind – um es einmal so zu sagen – irgendwie pingelig. So tauchte bei mir nach einigen funktionierenden Anfragen auf einmal die folgende Fehlermeldung auf:
You are trying to use a node of the CoDeeN CDN Network. While the Host header is generally optional for HTTP, it is required for CoDeeN. Furthermore, numerical hostnames are not allowed. Please add this header and try again.
Jaja, denkt man sich, ist doch kein Problem, füg ich halt den Host-Header manuell hinzu. Doch keine Chance, denn .NET besteht anscheinend darauf, das selbst zu machen und verhindert somit jeden Zugriff auf diese Eigenschaft. Wie gesagt: .NET macht das selbst, denn eine Überprüfung der gesendeten Daten mit Wireshark zeigte eindeutig, dass die Zeile
Host: ws.audioscrobbler.com
wie gewünscht vorhanden war. Nur CoDeeN wusste es besser und präsentierte mir immer wieder aufs Neue die Fehlermeldung. Also habe ich herumprobiert und herumprobiert, den Proxy in Firefox eingetragen, wo er auch läuft, verschiedenste Header-Einstellungen ausprobiert (Keep-Alive, Connection, …) und, um es kurz zu machen, kein bisschen Erfolg gehabt.
Und dann, wie aus heiterem Himmel, geht es plötzlich. Und ebenso heiter geht dann wieder nichts mehr. Ich gebe also auf, denn anscheinend liegt der Fehler nicht auf meiner Seite, sondern ist einfach nur Willkür des allmächtigen CoDeeN-Networks. Hierzu noch ein paar Informationen: “Truth about PlanetLab/CoDeeN proxy servers” (für die Qualität des hier verwendeten Englisch kann ich nichts…):
(…)
Because all proxies including your own ip address are monitored, many sites are filtered and very oft appear message warning:
“You are trying to use a node of the CoDeeN CDN Network. Your IP address is not recognized as a valid PlanetLab address, so your request rate is being limited.”, and furthermore proxies do not support HTTP protocol post and connect method and very hardly GET and HEAD method.Good news is that you can get almost all ip addresses that belong to this project from our forum thread Planetlab/CoDeeN and do not forget that we advice you to exclude all proxy servers on port 3124 and 3127 because thats are generally spoken not detected, but well-known CoDeeN servers (our study proved that 99.9% of all working servers on ports 68660, 68663, 68664, 3124 and 3127 are PlanetLab/CoDeeN servers).
(…)
In einem anderen Forum habe ich noch gelesen, dass man über CoDeeN-Server weder posten, noch uploaden, noch downloaden kann.
Also, auch von mir der Rat: lasst die CoDeeN-Proxies in Frieden, die wollen anscheinend eh nur ihre Ruhe.
Nachtrag:
Ich habe letztlich zum Testen einen wirklich guten Proxy gefunden: http://66.198.41.11:3128. Mal sehen, wir lange der so gut bleibt…
[...] gilt es natürlich, einen funktionierenden Proxy zu finden. (An dieser Stelle sei mein Beitrag zu CoDeeN-Proxies erwähnt, die einfach nicht zu empfehlen sind…) Gute Anlaufstelle hierfür ist z.B. [...]
[Release] LastSharp 0.3.5 | xscDevBlog - LastSharp & Co.
4 Okt 08 at 05:26
[...] oder wenn der Server eine Inkompatibilität zum verwendeten Programm aufweist. (z.B. Server des CoDeeN-Networks zu [...]
Proxy-Server verwenden (C#) | xscDevBlog - LastSharp & Co.
7 Okt 08 at 00:15