2016-11-09 39 views
0

のWeb APIから戻らないFlurlポストは、Web APIに以下の記事で、私はFlurlを使用してXamarinアプリケーションを持っている

XamarinのApp:

private async Task<LoginResponse> processLogin() 
    { 
     try 
     { 

      return await "http://192.168.0.12:60257/api/loginapi/Login".WithTimeout(10).PostJsonAsync(new { username = "fsdafsd", password = "gdfgdsf" }).ReceiveJson<LoginResponse>(); 
     } 
     catch (Exception e) 
     { 
      return new LoginResponse { ResponseStatusCode = -1 }; 
     } 
    } 

Web APIを:

public LoginResponse Login([FromBody]LoginRequest loginRequest) 
{ 
    var result = new LoginResponse(); 

    try 
    { 
     var user = this.UserManager.FindAsync(loginRequest.username, loginRequest.password); 

     if (user != null) 
     { 
      result.ResponseStatusCode = 1; 
     } 
     else 
     { 
      result.ResponseStatusCode = 0; 
     } 

    } 
    catch (Exception e) 
    { 

     result.ResponseStatusCode = -1; 
    } 

    return result; 

} 

私のWeb APIメソッドがヒットし、期待どおりのオブジェクトタイプが返されますが、私のXamarinアプリケーションはFlurl Postで待機しません。

誰かが私に間違っているとアドバイスできますか?

UPDATEは:

私は次の作業を行うことに気づいたが、それは理想的ではありません。

ダイナミックな結果=待つ "http://192.168.0.12:60257/api/loginapi/Login" .PostJsonAsync(新しい{ユーザー名= "fsdafsd"、パスワード=「gdfgdsf "})。ReceiveJson();

+0

LoginResponseの完全なクラス定義を投稿してください –

答えて

0

修正済みです。どんな理由であれ、私が戻そうとしていたタイプでした。オブジェクト変数の型を "dynamic"に変更すると、これが修正され、オブジェクトを正しくデシリアライズすることができました。

動的結果= "http://192.168.0.12:60257/api/loginapi/Login" .PostJsonAsync(new {ユーザー名= "fsdafsd"、パスワード= "gdfgdsf"})。ReceiveJson();

通常の構造で予想されるプロパティを持つ動的オブジェクトを返します。

誰もが私の理由は、私が行うことができませんでした啓発することができた場合:

LoginRequest結果を= ...

当然のことと思います。

関連する問題