使用ASP.NET Core MVC控制器将RestSharp POST请求连接到Web API的问题

时间:2019-06-05 17:25:17

标签: c# rest asp.net-core timeout restsharp

我在VS2017中有一个ASP.NET核心MVC控制器, 我正尝试通过以下方式提出休息请求:

        var baseURL = @"http://localhost:44317/";
        var client = new RestClient(baseURL);

        var request = new RestRequest(@"api/values", Method.POST);
        request.AddJsonBody(new Scan
        {
            sid = scanId.ToString(), scanPath = scansParentPath

        });            
        var response = client.Execute(request);

接收类是:

[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
    // GET api/values
    [HttpGet]
    public ActionResult<IEnumerable<string>> Get()
    {
        return new string[] { "value1", "value2" };
    }
    // POST api/values
    [HttpPost]
    public void Post([FromBody] Scan value)
    {
    }
}
}

,我得到的响应是超时异常。 发生此异常的原因可能是什么?我是否以错误的方式实现了剩余呼叫?

2 个答案:

答案 0 :(得分:0)

您的RestSharp POST请求对我有效。第一步是确认远程服务器发布操作是否按预期进行,请尝试使用Fiddler或Postman进行发布请求并调试Web api以确认。

或者您可以尝试延长请求的超时时间:

request.Timeout = 300000;

答案 1 :(得分:0)

问题是该连接被标记为SSL。删除EnableSSL复选框后,一切正常。