【问题标题】:Xamarin Android: How do i open add header and send post request in webviewXamarin Android:如何在 webview 中打开添加标头并发送发布请求
【发布时间】:2017-03-01 04:03:20
【问题描述】:

我已经制作了一个 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 加载页面,但它已被弃用。

【问题讨论】:

  • 那么你的问题到底是什么?

标签: android web xamarin view httpclient


【解决方案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;
}

【讨论】:

  • 我使用 httpwebrequest 让它工作。感谢您的回复:)
猜你喜欢
  • 2015-12-22
  • 2019-01-06
  • 1970-01-01
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-23
  • 1970-01-01
相关资源
最近更新 更多