RestSharp中的错误请求?

时间:2015-04-17 19:16:52

标签: restsharp

在我的MyServices项目中,我的服务位于TestService.svc

    [OperationContract]
    [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "/GenerateMetadata/{FacilityID}")]
    public List<dynamic> GenerateMetadata(string FacilityID)
    {

然后在代码中向它发送请求。我有:

  [TestMethod]
    public void MetadataServiceShouldReturnExpected()
    {
        var client = new RestClient("http://localhost/MyServices/TestService.svc/");

        var request = new RestRequest("GenerateMetadata/{FacilityID}", Method.POST);
        request.AddUrlSegment("FacilityID", "888");
        var response = client.Execute(request);

然而,当我将鼠标悬停在回复内容上时,我找到了。

  

服务器在处理请求时遇到错误。异常消息是“未对此操作授权的用户”&#39;。有关详细信息,请参阅服务器日志。

IIS日志没有足够的信息。就像:

     `2015-04-17 19:13:52 ::1 POST /MyServices/TestService.svc/GenerateMetadata/163 - 80 - ::1 RestSharp/105.0.1.0 400 0 0 391`

请帮忙。

1 个答案:

答案 0 :(得分:0)

似乎缺乏身体参数。

如果设置了此参数,则其值将作为请求的正文发送。只接受一个RequestBody参数 - 第一个。

参数的名称将用作请求的Content-Type标头。

RequestBody不适用于GET或HEAD请求,因为它们实际上并不发送正文。

如果你有GetOrPost参数,它们将覆盖RequestBody - RestSharp不会合并它们,但它会抛弃RequestBody参数。