Die folgenden Arbeiten:
curl --data '' http: // localhost: 49301 / api / donut / run? Aufgabe = backen
Der Parameter "--data ''" scheint wichtig zu sein, so dass curl einen POST und kein GET durchführt.
Ich versuche, mit einigen Parametern in der URL an localhost zu posten. In Fiddler funktioniert einfach alles. CURL erlaubt es mir jedoch nicht, dies mit der Fehlermeldung unten zu tun.
curl --data "Task = backen" http: // localhost: 49301 / api / donut / run
{"Message": "Es wurde keine HTTP-Ressource gefunden, die mit der Anforderungs-URI ' http: // localhost: 49301 / api / donut / run '.", "MessageDetail": "Keine Aktion auf dem Controller 'Donut' gefunden wurde stimmt mit der Anfrage überein. "}
In Fiddler verfasse ich die Anfrage wie folgt: POST http: // localhost: 49301 / api / donut / run? Task = backen
Die folgenden Arbeiten:
curl --data '' http: // localhost: 49301 / api / donut / run? Aufgabe = backen
Der Parameter "--data ''" scheint wichtig zu sein, so dass curl einen POST und kein GET durchführt.
Während Sie technisch eine "POST" -Anforderung in Fiddler durchführen (was ich nicht verwendet habe, aber ich weiß ein oder zwei Dinge über HTTP), sieht es für mich sehr danach aus, als würden Sie Ihre Anfrage nicht wirklich veröffentlichen, sondern Sie verwenden einen "PUT" (vermutlich mit einem leeren Post verbunden).
Ich glaube, wenn Sie curl verwenden würden : http: // localhost: 49301 / api / donut / run? Task = backen, würde es gut funktionieren.
[Eine PUT-Anforderung setzt die Parameter als Teil der URL, eine POST-Anforderung stattdessen in den Anforderungsheader.
Es ist wahrscheinlich, dass Ihre Anwendung so programmiert ist, dass sie PUTS akzeptiert, jedoch keine POSTS.
Die Verwendung von curl mit dem Argument --data bewirkt, dass curl an POST gesendet wird, die Argumente jedoch auch als Teil des Hauptteils der Anforderung und nicht als über die URL übergebene Argumente gesendet werden.
Da der Fehler, den Sie erhalten, ein MVC-Routing-Fehler ist, der besagt, dass die Route nicht in eine Aktion aufgelöst werden kann, schätze ich, dass die Aktion, auf die Sie abzielen, nicht so eingerichtet ist, dass sie ihre Parameter vom Hauptteil der anfordern.
Versuchen:
curl -d '' http://localhost:49301/api/donut/run?Task=bake