1

我有一个需要支持 X-HTTP-Method-Override 标头的 ServiceStack Web 服务。

我尝试通过设置了 X-HTTP-Method-Override 标头的Get 请求来模拟Delete 请求,但我得到了:-

404 - Handler for Request not found

以下是请求格式:

Get - http://localhost/test/1

标头

User-Agent: Fiddler
Host: localhost
X-HTTP-Method-Override: Delete

服务及其 DTO 实现如下所示:

[Route("/test/{id}", HttpMethods.Delete)]
public class TestRequest {
    public int id { get; set; }
}

public class TestService : Service {

    public object Delete(TestRequest request){
        return request.id;
    }
}

我在 ServiceStack 源代码中发现了一个片段,它说支持 X-HTTP-Method-Override 功能。

我还需要在项目中配置什么才能使其正常工作吗?请帮忙...

4

1 回答 1

1

我想通了,我将 Get 动词添加到请求 dto 中,如下所示:

[Route("/test/{id}", "Delete,Get")]
public class TestRequest {
    public int id { get; set; }
}

现在,当通过X-HTTP-Method-Override的Get请求进行模拟时,将调用Delete方法

public class TestService : Service {

    public object Delete(TestRequest request){
        return request.id;
    }
}
于 2013-06-19T22:53:46.833 回答