我已经创建了一个webviewclient来拦截请求并添加标头并调用loadUrl但不确定它是否正常工作。
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 :(得分: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;
}