Eine Site erhält bei Curl die Antwort „zu viele Weiterleitungen“, funktioniert aber in einem Browser (Chrome) einwandfrei.

Eine Site erhält bei Curl die Antwort „zu viele Weiterleitungen“, funktioniert aber in einem Browser (Chrome) einwandfrei.

Ich habe einen Fall, bei dem eine URL in einem Browser problemlos geöffnet wird, aber „zu viele Weiterleitungen“ generiert curl.

Nachfolgend ein Beispiel einer Anfrage mit curl von meiner WSL2-Instanz, die aus einem Bash-Skript übernommen wurde:

curl -sSL  https://www.bricomarche.net -o /dev/null -w "%{response_code} %{url_effective} \n"

curl: (47) Maximum (50) redirects followed
302 https://intermarche.queue-it.net/?c=intermarche&e=bricoprodkuserv2&ver=v3-java-3.5.1&cver=45&cid=fr-CA&l=BRICOMARCHE&t=https%3A%2F%2Fwww.bricomarche.com%2F 

Beachten Sie, dass ich im obigen Befehl den benutzerdefinierten Benutzeragenten weggelassen habe, der der Einfachheit halber aus meinem Chrome-Browser kopiert wurde. Das Ergebnis ist das gleiche.

Wenn ich jedoch versuche, die obige URL in meinem Chrome-Browser zu öffnen, funktioniert es einwandfrei.

Dieselbe Situation hatte ich mit der URL https://shop.mercury.co.nz– sie wird im Browser problemlos geöffnet, aber in Curl gibt es zu viele Weiterleitungen:

$  curl -sSL https://shop.mercury.co.nz -o /dev/null -w "%{response_code} %{url_effective} \n"
curl: (47) Maximum (50) redirects followed     
302 https://shop.mercury.co.nz/nz/join/prepare 

Irgendeine Idee, wie man die Locke repariert?

Antwort1

Offenbar handelt es sich zumindest in einigen Fällen um ein Cookie-Problem.

Das Hinzufügen -b non-existingals Parameter zur Curl-Anfrage hilft irgendwie, das Problem zu beheben.

curl -sLI -b non-existing https://the_site -o /dev/null -w "%{response_code} %{url_effective} \n"

verwandte Informationen