【问题标题】:WebClient same request works on WinForms but doesn't work on WP7WebClient 相同的请求适用于 WinForms 但不适用于 WP7
【发布时间】:2013-04-10 14:49:12
【问题描述】:

这是我的代码:

    var client = new WebClient();
    client.Headers[HttpRequestHeader.Authorization] = "Basic " +    "SECRETCODE";
    client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded; charset=UTF-8";
    client.Headers[HttpRequestHeader.Host] = "api.quizlet.com";
    client.UploadStringCompleted += ClientOnUploadStringCompleted;

    client.UploadStringAsync(new Uri("https://api.quizlet.com/oauth/token"), "POST", string.Format("grant_type={0}&code={1}&redirect_uri={2}",
        HttpUtility.HtmlEncode("authorization_code"), HttpUtility.HtmlEncode(code), HttpUtility.HtmlEncode(AfterOAuthUrl)));

当我在 WinForms 中测试此代码时,我收到了正确的令牌,但是当我在 WP7 上使用它时,它抛出异常:远程服务器返回:“未找到”。我该怎么办?这是 WP 证书问题,还是我必须在 WP7 上做一些不同的事情?

【问题讨论】:

  • 如果您删除在 WinForms 上设置主机属性,它仍然有效还是返回与 WP 相同的错误?
  • 移除了 Host 标头,它仍然可以在 WinForms 上运行,这是什么意思?
  • 还没有。您能否将以下内容添加到 WinForms 代码并告诉我它是否继续工作?推荐人:Headers[HttpRequestHeader.Referer] = "file:///Applications/Install/9036AAF3-F213-4CFB-B57E-576A05E1896D/Install/";
  • 抛出异常:“远程服务器返回错误:错误请求”(翻译成英文,所以...)。无论有没有主机属性,它都会引发此错误。

标签: c# windows-phone-7 webclient


【解决方案1】:

好的...尝试以下操作:

client.Headers[HttpRequestHeader.Referer] = "http://api.quizlet.com";

如果这不起作用:

client.Headers[HttpRequestHeader.Referer] = "api.quizlet.com";

在 WP 项目中。如果它不起作用,请告诉我。

【讨论】:

    猜你喜欢
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2020-06-13
    • 2017-08-06
    • 2021-09-06
    • 1970-01-01
    相关资源
    最近更新 更多