- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是一个 Xamarin 解决方案,我收到此消息标题中发现的错误。当然,我可以很容易地确认PCL项目中的HttpClientHandler上有一个Proxy属性。并且解决方案的构建没有错误。仅当我运行时,它才会产生此错误(在 Droid 或 iOS 上),并且在调用 PCL 中实例化 HttpClient 的方法时才会产生此错误。请注意,它甚至没有到达该方法。错误出现在应用程序启动方法上;例如,UIApplication.Main()
如果我注释掉处理程序并在没有处理程序的情况下实例化 HttpClient,只要我在开放的互联网上,它就可以正常工作。但我正在尝试让它在代理后面工作。
进一步调查显示设备项目没有引用 System.Net.Http。所以我添加了这些 - 它指示 Xamarin.iOS 和 Xamarin.Android 作为包 - 但它仍然会产生错误。
我不清楚错误告诉我什么,但我相信这意味着设备项目看不到 System.Net.Http.HttpClientHandler?
private HttpClient GetHttpClient()
{
WebProxy proxy = new WebProxy(ProxyConfig.Url)
{
Credentials = new NetworkCredential(ProxyConfig.Username, ProxyConfig.Password)
};
// At runtime, when GetHttpClient is invoked, it says it cannot find the Proxy setter
HttpClientHandler handler = new HttpClientHandler
{
Proxy = proxy,
UseProxy = true,
PreAuthenticate = true,
UseDefaultCredentials = false,
};
HttpClient client = new HttpClient(handler);
// This works when not behind a proxy
//HttpClient client = new HttpClient();
return client;
}
public async Task GetWeatherAsync(double longitude, double latitude, string username)
{
// MissingMethodException is thrown at this point
var client = GetHttpClient();
client.BaseAddress = new Uri(string.Format("http://api.geonames.org/findNearByWeatherJSON?lat={0}&lng={1}&username={2}", latitude, longitude, username));
try
{
var response = await client.GetAsync(client.BaseAddress);
if (response.IsSuccessStatusCode)
{
var JsonResult = response.Content.ReadAsStringAsync().Result;
var weather = JsonConvert.DeserializeObject<WeatherResult>(JsonResult);
SetValues(weather);
}
else
{
Debug.WriteLine(response.RequestMessage);
}
}
catch (HttpRequestException ex)
{
Debug.WriteLine(ex.Message);
}
catch (System.Net.WebException ex)
{
Debug.WriteLine(ex.Message);
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
最佳答案
添加Microsoft.Net.Http
NuGet package也到您的平台项目。如果您在添加此内容时遇到问题,请尝试安装最新的 Microsoft.Bcl.Build
package第一的。然后,安装完成后,添加 HTTP 包。
关于xamarin - System.MissingMethodException 未找到方法 'System.Net.Http.HttpClientHandler.set_Proxy',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41289668/
我试图在创建 Mechanize 浏览器实例时设置一个 http 代理,但它似乎根本不起作用或抛出任何类型的错误。 from mechanize import Browser br = Browser
我不确定是什么问题。我有一个使用 Mechanize 打开网页的脚本。我想为此设置代理。 我可以 br.set_proxies({'http':'proxyip:port'}) 当我尝试打开网页时,它
这是一个 Xamarin 解决方案,我收到此消息标题中发现的错误。当然,我可以很容易地确认PCL项目中的HttpClientHandler上有一个Proxy属性。并且解决方案的构建没有错误。仅当我运行
我是一名优秀的程序员,十分优秀!