ich habe ein Problem mit dem zeitnahen Zugriff auf die API. Ich greife auf folgende URL zu:
Ich habe einen API-Schlüssel und einen Benutzer erstellt, und bisher scheint alles in Ordnung zu sein.
Wenn ich es von Postman mit den richtigen Anmeldedaten teste, wird es sofort mit Daten zurückgegeben, wie ich es erwarten würde.
Das Problem tritt auf, wenn ich versuche, von einer anderen Stelle als Postman darauf zuzugreifen … wie von meinem Code. Es dauert MINUTEN, bis es zurückkommt, aber es kommt schließlich mit Daten zurück.
Das gleiche Problem tritt in einem Terminal mit folgendem Befehl auf:
wget --no-check-certificate --quiet \
--method GET \
--timeout=0 \
--header 'Api-Key: correct-api-key-here' \
--header 'Api-Username: <correct user name here>' \
'https://community.tenxguitar.com/c/7.json'
Das gleiche Verhalten wie bei meinem Python-Code. Ich glaube nicht, dass ich irgendwelche Konfigurationseinstellungen habe, die dies beeinflussen würden (auf dem Forum). Kann mir bitte jemand Rat geben oder helfen?
ich habe die Option -4 ausprobiert (mit der ich nicht vertraut bin), und sie hat sofort und wie erwartet funktioniert. Anschließend habe ich die Option -v getestet, und falls ich das richtig verstanden habe, sieht es nach einem SSL-Timeout aus. Hier ist die Ausgabe von -v. Könntest du die Option -4 genauer erläutern? Danke! Hinweis: Ich musste einige Teile entfernen, da es Einschränkungen beim Posten von Links gibt.
Auflösen von community.tenxguitar.com (community.tenxguitar.com)… 2001:470:1:59e::139, 66.220.12.139
Verbinden mit
()|2001:470:1:59e::139|:443… fehlgeschlagen: Verbindungszeitüberschreitung.
Verbinden mit ()|66.220.12.139|:443… verbunden.
HTTP-Anfrage gesendet, warte auf Antwort… 200 OK
Länge: nicht angegeben [application/json]
Speichern unter: ‘7.json.4’
Ihr Rechner ist derzeit sowohl mit einer IPv4- als auch mit einer IPv6-Adresse konfiguriert, aber Ihre IPv6-Verbindung ist defekt, und Verbindungsversuche über IPv6 führen zu einer Zeitüberschreitung.
wget (und wahrscheinlich auch Ihr Python-Code) versucht zuerst eine IPv6-Verbindung, wartet bis zum Timeout und verbindet sich dann erfolgreich über IPv4. Es funktioniert jedoch, wenn -4 die Verwendung von IPv4 erzwingt.
Sie müssen untersuchen, warum IPv6-Verbindungen in Ihrem Netzwerk nicht funktionieren. Selbst wenn sie sofort fehlschlagen, ist das besser, da wget dann sofort über IPv4 versucht, anstatt auf IPv6 zu warten.