2017-03-01 63 views
2

webviewclientを使って要求を傍受し、ヘッダを追加してloadUrlを呼び出すが、まだ動作していないかはわかります。Xamarin Android:webviewでヘッダを追加して投稿要求を送信するには

public override bool ShouldOverrideUrlLoading(Android.Webkit.WebView view, IWebResourceRequest request) 
     { 
      var headers = new System.Collections.Generic.Dictionary<string, string>(); 
      headers.Add("Authorization", "bearer " + "s2vIKZd_P91MaaxaZ_XyeUpph6wQNrQ81pcQdUXjFTB3r48RaU9"); 
      view.LoadUrl(request.Url.ToString(), headers); 
      return true; 
     } 

私はDefaultHttpClientでページを読み込むことができますが、廃止されました。

+0

あなたの質問は何ですか? – SergGr

答えて

1

コードは正常に動作し、問題を解決するはずですが、DefaultHttpClientでページをロードする場合は、すべてのリクエストをインターセプトするためにShouldInterceptRequestメソッドをオーバーライドする必要があります。

DefaultHttpClientは代わりにHttpClientを使用することができます。これを使用するには、System.Net.HttpパッケージをXamarin.Androidプロジェクトにインストールする必要があります。たとえば、次のようなコードを書くことができます。

using (HttpClient client = new HttpClient()) 
{ 
    client.BaseAddress = new Uri("URL"); 
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/plain")); 
    var httprequest = new HttpRequestMessage(HttpMethod.Post, "relativeAddress"); 
    client.DefaultRequestHeaders.Add("Authorization", "bearer " + "s2vIKZd_P91MaaxaZ_XyeUpph6wQNrQ81pcQdUXjFTB3r48RaU9"); 
    var httpresponse = client.SendAsync(httprequest).Result; 
} 
+0

私はhttpwebrequestを使って動作させています。あなたの返事をありがとう:) – LittleFunny

+0

@リトルファニー、あなたは大歓迎です! –

関連する問題