Xamarin Android:如何在webview中打开添加标题并发送帖子请求

时间:2017-03-01 04:03:21

标签: android web xamarin view httpclient

我已经创建了一个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加载页面但不推荐使用它。

1 个答案:

答案 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;
}
相关问题