HttpClient在API控制器上使用构造函数返回内部服务器错误(500)

时间:2017-10-17 18:15:10

标签: c# asp.net-web-api asp.net-web-api2 httpclient

我正在做一个Api控制器应用程序。

On My Api方法我想调用另一个Project中定义的Function。我想用IOC。我定义了一个接口和一个继承自接口的类。

我在调用Controller / Method时遇到的问题是我有错误Internal Server Error (500)

我测试每个可能性,因为我使用了一个Controller Constructor。如果我避免使用它,那就是Works。

它不起作用,



public class LoginController : ApiController
{
private IUserLogin _userLogin;

        public LoginController(IUserLogin userLogin)
        {
              _userLogin = userLogin;
        }
        [HttpPost]
        public UserToken Login([FromBody]Users user)
        {
               return _userLogin.SetToken(user);
            
        }
}




没有构造函数



  public class LoginController : ApiController
    {
        [HttpPost]
        public UserToken Login([FromBody]Users user)
        {
             private IUserLogin _userLogin;
                return _userLogin.SetToken(user);
        }
     }




有效......

我正在接受WinForm这样的调用



 using (HttpClient client = new HttpClient())
            {
                //reference nuget Microsoft.AspNet.WebApi 
                client.BaseAddress = new Uri(apiUrl);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                var response = client.PostAsJsonAsync(apiUrl + "Login/Login", user).Result;

                if (response.IsSuccessStatusCode)
                    userToken = response.Content.ReadAsAsync<UserToken>().Result;
                else
                    throw new Exception("Error");
            }
&#13;
&#13;
&#13;

如何使用Controller Constructor而不会出现任何错误?

0 个答案:

没有答案