Gerade basteln mit Sinatra und versuchen, ein bisschen von einem restful Web-Service zu bekommen. Der Fehler, den ich im Moment bekomme, ist jedoch sehr spezifisch.
Nehmen Sie dieses Beispiel einer Postmethode
post '/postMan/:someParam' do
#Edited here. This code can be anything. 411 is still the response
puts params[:someParam]
end
Scheint ganz einfach zu sein. Man nehme einen Parameter, mache ein Objekt daraus und speichere es dann auf die Art und Weise, die die Speichermethode des Objekts vorgibt.
Hier ist, was ich verwende, um die Daten mit Curl zu posten
$curl -I -X POST http://127.0.0.1/postman/123456
Das einzige Problem ist, dass ich 411 zurückbekomme und keine Ahnung habe, warum. Soviel ich weiß, ist 411 eine erforderliche Länge. Hier ist die Spur
HTTP/1.1 411 Length Required
Content-Type: text/html; charset=ISO-8859-1
Server: WEBrick/1.3.1 (Ruby/1.9.2/2011-07-09)
Date: Fri, 02 Mar 2012 22:27:09 GMT
Content-Length: 303
Connection: close
Ich kann die Curl-Meldung in keiner Weise ändern. Hat vielleicht jemand eine Möglichkeit, die Länge des Inhalts so einzustellen, dass sie in Sinatra ignoriert wird? Oder eine Lösung, bei der die Curl-Anfrage nicht geändert werden muss?
Im Übrigen spielt es keine Rolle, ob ich die Parameter in der Post-Methode verwende oder nicht. Ich könnte einige verrückte Code darin haben, wird es immer noch den gleichen Fehler werfen