2017-11-27 10 views
0

私はADAL認証でNet Core Webアプリケーションにデータを投稿するXamarin.Androidアプリケーションを作成しています。問題は、APIコントローラが認証([AllowAnonymous])を必要としないように設定されていますが、httpClient.PostAsync()メソッドのうち1つだけがMicrosoft Loginページで応答することです。 WebClient.UploadString()を使用しようとしましたが、応答は同じログインページです。私はこのアプリケーションをUWPから移植しています。同じコードが問題なく動作します。HttpClient.PostAsync Xamarin.Android C#間違った応答

編集: 詳細については、いくつかのコードを追加してください。問題はresponse.IsSuccessStatusCodeはtrueですが、responseStringにはMicrosoftログインページが含まれていますが、jsonデータが返されるはずです。

HttpResponseMessage response; 
     try 
     { 


      response = await httpClient.PostAsync(url, new System.Net.Http.StringContent(JsonConvert.SerializeObject(data), System.Text.Encoding.UTF8, "application/json")); 
     } 
     catch (Exception ex) 
     { 


      return result; 
     } 
     if (response.IsSuccessStatusCode) 
     { 
      var responseString = await response.Content.ReadAsStringAsync(); 
      try 
      { 
       //parsing the response 
      } 
      catch (Exception) 
      { 
       //response was incorrect 
      } 
     } 
+2

私は問題はAPIコントローラではないxamarinアプリであると考えるのURL –

+0

で...より良い理解のためにあなたのコードを投稿してください。それはあなたが残りのサービスを適切に呼び出すように見える –

+0

奇妙な部分は、XamarinのAndroidアプリからのみ動作していないことです。エミュレータから試してみましたが、実際のデバイスや応答から私はサインインする必要がありますが、データフォームUWPアプリとFiddlerを投稿するとうまく動作し、認証を求めません。 –

答えて

0

これを試してみてください:

HttpContent content = response.Content; 
var json = await content.ReadAsStringAsync(); 
関連する問題