2011-03-08 59 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 [])。