2011-03-08 86 views
0

考慮下面的代碼和配置爲OpenRasta正文格式選項:爲OpenRasta POST操作

ResourceSpace.Has.ResourcesOfType<Foo>() 
    .AtUri("/foo/{fooID}") 
    .And.AtUri("/foo") 
    .HandledBy<FooHandler>() 
    .AsJsonDataContract(); 

public OperationResult GetFoo(int fooID) { } 

public OperationResult PostFoo(Foo foo) { } 

public class Foo 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
} 

,如果我想發佈在我的FooHandler的PostFoo方法什麼是對請求主體的正確格式。它可以是json(即與GetFoo相同的格式),還是名稱 - 值對(例如ID = 1 & Name = FooManChu)?

我是否需要在發佈請求中設置任何其他標題,例如內容類型?

我試圖讓這個工作,但我似乎是415錯誤,當我嘗試做到這一點?

+0

啊。我似乎回答了我自己的問題。是的,它可以是JSON和是的,顯然我必須添加application/json的Content-Type頭。 – BertC 2011-03-08 22:43:43

回答

3

如果你發送一個Content-Type的應用程序/ json,那就行了。如果你想使用鍵值對,使用multipart/form-data或application/x-www-form-urlencoded,那也可以。

如果您不指定Content-Type,它將默認爲application/octet-stream,您只有它的映射到Stream(和byte [])。