2017-03-01 50 views
2

我已經做了一個webviewclient攔截請求並添加標頭並調用loadUrl但尚未確定它的工作原理。Xamarin Android:我如何打開添加標題並在webview中發送post請求

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來代替,要使用這個,我們需要在Xamarin.Android項目中安裝System.Net.Http包。那麼你可以例如這樣的代碼:

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

@LittleFunny,不客氣! –