Hallo
Ich verwende Buildroot als Distribution auf meinem STM32MP1. Ein Kollege
hat einen Endpunkt erstellt, um zu testen, ob die MPU eine Verbindung
zum Server herstellt:
wenn ich:
Mehdi J. schrieb:> curl: (7) Failed to connect to> dv7knsjzph.execute-api.eu-central-1.amazonaws.com port 80: Connection> refused
Weil irgendwas auf der Übertragungsstrecke die Verbindung ablehnt. Was
das ist, musst du mit geeigneten Netzwerktools ermitteln. Ein erster
Hinweis könnte sein das Https normalerweise Port 443 nutzt, deine
Meldung aber sagt aber Port 80. (http ohne S!) refused wird.
Entweder dein Curl Request passt nicht zur Fehlermeldung oder da ist
irgendwas dazwischen (Router, Firewall, Proxy) das ein redirect
vornimmt. Außerdem Sieht dein POST Request Komisch aus, ich sehe keine
Payload, hast du da vielleicht was vergessen zu hier zu Posten Payload
und oder Port zum Beispiel. Vielleicht ist es auch nicht schlecht erst
mal ein GET oder HEAD Request zu senden wenn das vom Server Akzeptiert
wird um das zu debuggen.
ein an geeigneter Stelle, oder ein Debugglog helfen dir sicher auch.
Mehdi J. schrieb:> Ein Kollege> hat einen Ruhepunkt erstellt
Was soll denn das bitte sein? mir ist der Begriff im Rahmen von
Client/Server Kommunikation kein Begriff.
Hi
Habe den "s" in http vergessen .... es ist jetzt besser aber ich bekomme
folgendes.
HTTP/1.1 502 Bad Gateway
Date: Fri, 06 Nov 2020 13:53:32 GMT
Content-Type: application/json
Content-Length: 36
Connection: keep-alive
x-amzn-RequestId: cadb391e-01e5-4353-97d5-e5a288790a83
x-amzn-ErrorType: InternalServerErrorException
x-amz-apigw-id: VlpGhFIVliAFrUQ=
Sorry ich meinte Endpuntk (RuhePunkt .. was für ein dummes Wort habe ich
geschrieben).
Wie vorgeschlagen habe ich https verwendet
Läuft besser aber nicht optimal.
Ich bekomme Folgendes:
HTTP/1.1 502 Bad Gateway
Date: Fri, 06 Nov 2020 13:53:32 GMT
Content-Type: application/json
Content-Length: 36
Connection: keep-alive
x-amzn-RequestId: cadb391e-01e5-4353-97d5-e5a288790a83
x-amzn-ErrorType: InternalServerErrorException
x-amz-apigw-id: VlpGhFIVliAFrUQ=
Mehdi J. schrieb:> Ich verwende einen STM32MP1 mit Buildroot als Distro.
Wenn das der "PC" ist, bei dem es geht, wo geht es denn dann nicht?
Sinn der Frage: Wenn sich verschiedene Clients bei exakt dem gleichen
cURL Kommando verschieden verhalten, sollte man mit der Suche beim
Client anfangen. Andernfalls beim Server, oder bei cURL generell.
Unter PC meinte ich meinen Laptop.
Ich habe erst Ubuntu LTS verwenden, den curl Befehl benutzt und alles
hat dann funktioniert
Jetzt mit dem MPU klappt etwas nicht.
Immer eine Gateway Fehlermeldung: HTTP/1.1 502 Bad Gateway
Wieso passiert das mit dem MPU und nicht mit dem PC? Liegt den Fehler
bei manche Linux Details wo man durch nano etwas ändern muss. Und hat
meinen Kollege die Konfiguration falsch gemacht.
Der Server hat offenbar ein internes Problem:
> x-amzn-ErrorType: InternalServerErrorException
Wenn das mit dem PC nicht auftritt, ist an deiner Anfrage mit dem
anderen System irgendwas, womit der Server nicht klar kommt.
(prx) A. K. schrieb:> Packet trace | tcpdump | Wireshark, und vergleichen.
Leider ist ja anscheinend TLS involviert, da wird das nicht viel
Aufschluss bringen...
🐧 DPA 🐧 schrieb:> Leider ist ja anscheinend TLS involviert, da wird das nicht viel> Aufschluss bringen...
Deshalb wäre es hilfreich, den Server vorläufig auch HTTP akzeptieren zu
lassen, ohne gleich auf HTTPS weiterzuleiten.
Auch curl kann man per -v und --trace geschwätziger machen.
Rolf M. schrieb:> Wenn das mit dem PC nicht auftritt, ist an deiner Anfrage mit dem> anderen System irgendwas, womit der Server nicht klar kommt.
Klar. Aber wenn der Server die CLients nicht per IP-Adresse
unterscheidet, muss es ja noch einen anderen Unterschied zwischen den
Clients geben. Das sieht man vielleicht mit -v oder --trace. Denkbar
wäre auch ein sich anders verhaltenden TLS seitens des Clients.
(prx) A. K. schrieb:> 🐧 DPA 🐧 schrieb:>> Leider ist ja anscheinend TLS involviert, da wird das nicht viel>> Aufschluss bringen...>> Deshalb wäre es hilfreich, den Server vorläufig auch HTTP akzeptieren zu> lassen, ohne gleich auf HTTPS weiterzuleiten.>> Auch curl kann man per -v und --trace geschwätziger machen.
DNS Round Robin. Eventuell hat ein Client die eine IP gecached, und der
andere die andere. Wenn dann eine davon nicht geht, würde dass das
erklären. versuch mal die beiden IPs direkt, statt der Domain.
Mehdi J. schrieb:> Immer eine Gateway Fehlermeldung: HTTP/1.1 502 Bad Gateway
Laut wikipedia:
502 Bad Gateway Der Server konnte seine Funktion als Gateway oder
Proxy nicht erfüllen, weil er seinerseits eine ungültige Antwort
erhalten hat.
kann es sein das deine Payload (-d) im Curl falsch/unverständlich etc
ist?
Imonbln schrieb:> kann es sein das deine Payload (-d) im Curl falsch/unverständlich etc> ist?
In seinem Kommando steht keine Payload drin. ;-)
Wenn bei seinem erfolgreichen Test mit Ubuntu eine drin stand, dann ist
das evtl der Fehler. Denn wenn ich das von einem PC-Linux aus absende,
gibts ebenfalls den 502.
(prx) A. K. schrieb:> Imonbln schrieb:>> kann es sein das deine Payload (-d) im Curl falsch/unverständlich etc>> ist?>> In seinem Kommando steht keine Payload drin. ;-)>> Ich will mal hoffen, dass bei seinem erfolgreichen Test mit Ubuntu auch> keine drin stand, sonst ist das evtl der Fehler. Wenn ich das von Linux> aus absende, gibts ebenfalls den 502.
Ich mache es wieder
--> Laptop
Mehdi J. schrieb:> Ich mache es wieder>> --> Laptop> curl -i -k -v -X --trace POST -H "Content-Type: application/json"> https://18.158.83.7Mehdi J. schrieb:> curl -i -k -v -X --trace POST -H "Content-Type: application/json"> https://18.158.83.7/prod/boxtronic-devices/2/data/
Und wieder Falsch "-X POST --trace" der parameter -X braucht ein
Argument.
"-X --trace POST " ist falsch we du am response sehen kannst!
Mehdi J. schrieb:> curl -i -k -v -X POST --trace -H "Content-Type: application/json"> https://18.158.83.7
Ja schon eher, ich würde aber den Webserver mit Namen ansprechen und
nicht mit der IP, da er ansonsten vielleicht nicht weiß für welche
seiner Instanzen der Request ist.
also so:
Imonbln schrieb:> Mehdi J. schrieb:>> curl -i -k -v -X POST --trace -H "Content-Type: application/json">> https://18.158.83.7>> Ja schon eher, ich würde aber den Webserver mit Namen ansprechen und> nicht mit der IP, da er ansonsten vielleicht nicht weiß für welche> seiner Instanzen der Request ist.>> also so:>>
Dann bekomme ich so (Laptop). Fehlermeldung
Warning: --trace overrides an earlier trace/verbose option
curl: (3) Port number ended with ' '
HTTP/2 502
date: Fri, 06 Nov 2020 16:11:08 GMT
content-type: application/json
content-length: 36
x-amzn-requestid: f6c48639-85f3-4dd2-b3d0-add483c93d63
x-amzn-errortype: InternalServerErrorException
x-amz-apigw-id: Vl9QaGqgliAFcww=
{"message": "Internal server error"}
Mehdi J. schrieb:> Dann bekomme ich so (Laptop). Fehlermeldung>> Warning: --trace overrides an earlier trace/verbose option> curl: (3) Port number ended with ' '> HTTP/2 403> date: Fri, 06 Nov 2020 16:07:18 GMT> content-type: application/json> content-length: 42> x-amzn-requestid: 65b0694d-5b39-4e03-968d-746050b59cf6> x-amzn-errortype: MissingAuthenticationTokenException> x-amz-apigw-id: Vl8sdFDYliAFW-w={"message":"Missing Authentication> Token"}m
Na das ist doch mal ein Fortschritt jetzt hast du ein 403, weil dein
Request kein Authentication Token hat. frage mal dein Kollegen wie du so
ein Token bekommen kannst ;) Vermutlich musst du denn irgendwo bei AWS
abholen und mit in dein Curl request Packen ( vermutlich in den HEADER
des Request)
> curl -i -k -v -X POST --trace -H
Das --trace will einen Parameter haben, nämlich das Tracefile. Du hast
nun ein Tracefile "-H" auf der Platte, dafür wurde nun der Rest dahinter
missverstanden.
Totaler Blindflug?
Mehdi J. schrieb:> Warning: --trace overrides an earlier trace/verbose option> curl: (3) Port number ended with ' '
Du, es wäre schon schlau wenn du Fehlermeldungen auch beachtest und mal
fünf Minuten auf die Man-Page von curl schaust um die richtigen Optionen
und Syntax zu finden.
Du behauptest hier seit Stunden dass das gleiche Kommando von einem
Rechner geht, vom anderen nicht. Dabei sind es immer unterschiedliche
Kommandos die du hier zeigst.
Imonbln schrieb:> Mehdi J. schrieb:>> Dann bekomme ich so (Laptop). Fehlermeldung>>>> Warning: --trace overrides an earlier trace/verbose option>> curl: (3) Port number ended with ' '>> HTTP/2 403>> date: Fri, 06 Nov 2020 16:07:18 GMT>> content-type: application/json>> content-length: 42>> x-amzn-requestid: 65b0694d-5b39-4e03-968d-746050b59cf6>> x-amzn-errortype: MissingAuthenticationTokenException>> x-amz-apigw-id: Vl8sdFDYliAFW-w={"message":"Missing Authentication>> Token"}m>> Na das ist doch mal ein Fortschritt jetzt hast du ein 403, weil dein> Request kein Authentication Token hat. frage mal dein Kollegen wie du so> ein Token bekommen kannst ;) Vermutlich musst du denn irgendwo bei AWS> abholen und mit in dein Curl request Packen ( vermutlich in den HEADER> des Request)
Musste nur was im Body geändert werden ..
curl -i -k -X POST -H "Content-Type: application/json" --data '{
"id":"id","timestamp":"data","data":"data"}'
https://dv7knsjzph.execute-api.eu-central-1.amazonaws.com/prod/boxtronic-devices/2/data/