【发布时间】: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