【问题标题】:WP8 HttpClient "Invalid Port Specified"WP8 HttpClient“指定的端口无效”
【发布时间】:2014-04-06 01:33:12
【问题描述】:

我正在尝试在 WP8 上构建一个应用程序,该应用程序将使用 NuGet 包中的 httpclient 从网络服务器下载 json 数据,但该内容未托管在标准端口上(使用的是 85)。当我尝试下载它时,我得到“指定的端口无效”。我假设这意味着默认情况下它被限制为 80、8080、443 或 8443,但我希望有一些方法可以让它适用于非标准 Web 端口。我在我的 Windows 8 Metro 应用程序中也有同样的工作。关于如何修复它的任何建议?只是提前声明,不,我不能更改服务器端的端口。

HttpClientHandler handler = new HttpClientHandler();
handler.Credentials = new NetworkCredential(App.UserName, App.Password);
handler.UseDefaultCredentials = false;
handler.AllowAutoRedirect = true;
HttpClient client = new HttpClient(handler);
HttpResponseMessage response = await client.GetAsync(url);
if (response.StatusCode != System.Net.HttpStatusCode.OK)
{
    MessageBoxResult result = MessageBox.Show("Error accessing server. " + response.StatusCode.ToString(), "Server access failure", MessageBoxButton.OKCancel);
    return "";
}
else
{
    return await response.Content.ReadAsStringAsync();
}

【问题讨论】:

    标签: c# windows-phone-8 dotnet-httpclient


    【解决方案1】:

    url中包含端口信息。

    HttpResponseMessage response = await client.GetAsync("http://www.bob.com:85/endpoint.json");
    

    【讨论】:

    • 我确实在 URL 中包含了端口号。我需要的服务恰好在 85 端口上,但我可以指定网站的 80 或 443 端口,然后查看字符串数据正在下载。似乎 WP8 不允许访问非标准端口,至少在默认情况下是这样。
    • 原来我有 url 编码在端口号后面抓取 /,所以这是一个愚蠢的错误。
    • 感谢您的跟进。
    猜你喜欢
    • 2023-01-25
    • 2011-08-25
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多