2017-10-31 33 views
0

私はこのWeb APIサービスがあります。私はXamarin.Formsプロジェクトからそれを呼び出したいXamarinフォームからWeb APIサービスを呼び出せませんか?

[HttpPost] 
public bool Post(UserModel newUser) 
{ 
    return regRepo.AddUser(newUser); 
} 

を、ので、私はこの作られた:

private void AddUser(object obj) 
    { 
     var user = obj as UserModel; 
     var url = @"http://localhost:57615/api/UsersApi/"; 
     var uri = new Uri(url); 
     var client = new HttpClient(); 
     var json = JsonConvert.SerializeObject(user); 
     var content = new StringContent(json, Encoding.UTF8, "application/json"); 

     var response = client.PostAsync(uri, content); 
    } 

を、それがサービスを呼び出すことはありません、私はにポストマンを使用しましたURLが正しいこと、そしてそれは私がメソッドsに変更し

EDITを動作することを確認

アプリケーションが中断モードである

enter image description here

+0

「AddUser」はどのようにクライアント側で呼び出されていますか? – Nkosi

+1

アンドロイドでこの問題に直面している場合は、AndroidManifestのインターネット権限があることを確認してください。 –

+0

インターネットアクセス許可をチェックしましたが、まだ動作していません。 –

答えて

1

非同期を待つの追加)、これを試してみてください:klm_が示唆されますが、このエラーが発生したとして asyncすべきignature
private async void AddUser(object obj) 
{ 
    var user = obj as UserModel; 
    var url = @"http://localhost:57615/api/UsersApi/"; 
    var uri = new Uri(url); 
    var client = new HttpClient(); 
    var json = JsonConvert.SerializeObject(user); 
    var content = new StringContent(json, Encoding.UTF8, "application/json"); 

    var response = await client.PostAsync(uri, content); 
} 
+0

編集してください –

+0

エラーの詳細は何ですか? –

+0

詳細はありません –

0

objは、モデルの正しいインスタンスです。

try 
{ 
    HttpClient client = new HttpClient(); 
    var model = obj as UserModel ; 
    var url = @"http://localhost:57615/api/UsersApi/"; 
    var json = JsonConvert.SerializeObject(model); 
    HttpContent content = new StringContent(json); 
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); 
    var response = await client.PostAsync(url, content); 
    var message = await response.Content.ReadAsStringAsync(); 
    return message; 
} 
catch (Exception x) 
{ 
// message 
} 
関連する問題