ich habe seit kurzem das Problem, dass ich keine Daten mehr von der overpass-API empfangen kann. Ich habe dass ganze auch schon über mein Handy, Laptop und PC probiert. Mit und ohne WLAN. Die entsprechende Fehlermeldung lautet: Failed to open stream: HTTP request failed! HTTP/1.1 406 Not Acceptable in ……….
Die Overpass api läuft nicht über einen User Agent script. Das tat diese aber noch nie. Sollte es daran liegen? Aber wie baue ich diesen dann in die Overpass api Abfrage ein? Nomination läuft über einen User Agent script einwandfrei d.h. empfange ich hier alle Daten.
Ich habe alternativ mal versucht, Autobahnen über nominatin zu finden. Aber leider ohne Erfolg. Ist dies überhaupt möglich?
Ich nutze zwar python statt php, aber ohne User-Agent oder mit dem “Standard” User-Agent ‘Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17(KHTML, like Gecko) Chrome/24.0.1312.27 Safari/537.17’ habe ich auch 406 erhalten.
Mit User-Agent = ’ username data for xy ’ hat es dann geklappt.
Was ist das denn für eine Biblothek? Solltest du gleich entsorgen, weil die nicht den Nutzungsbedingungen von Overpass entspricht. Diese sagen sehr deutlich, dass man keine User-Agents impersonieren soll.
Ob du nun Tiles von osm.org oder Daten von Overpass oder Nominatim abfragst, alle Nutzungsbedingungen verlangen von dir, einen eindeutigen User-Agent/Referrer zu schicken, der genau dein Script/deinen Service identifiziert.
Ich würde vermuten das $_SERVER['HTTP_USER_AGENT'] dein Script nicht hinreichend identifiziert sondern ein generischer User Agent ist. Nominatim scheint sich hier (noch) großzügig zu verhalten und dir das durchgehen zu lassen, Overpass nicht.
MyCleverAddressScript 1.0.0 identifiziert genau dein Script/Service und ist das, was die Nutzungsbedingungen erfordern.
Das ganze funktioniert jetzt einwandfrei. Ich verstehe aber nicht, was dieser MyCleverAddressScript 1.0.0 ist. Der script funktiniert auch, wenn ich $opts = array('http'=>array('header'=>"User-Agent: allemeineentchen\r\n")); // Neuer User-Agent
verwende. Aber will openstreetmap nicht meine realen Browserdaten?
Die Services wollen genau deinen Service identifizieren können, dass sie genau deinen Service abklemmen können, wenn du die Server übermäßig belastest, nicht alle Leute die einen Chrome-Browser verwenden.