几天来,我一直在寻找问题的答案,但遗憾的是没有运气。我希望你们在这里可以帮助我。
所以,我想做的只是一个简单的对delicious.com API 的调用,它返回我最近的书签(美味术语中的“帖子”)。因此,您只需使用以下 URI并输入您的凭据即可登录到 nice.com。
当我从具有 HttpWebRequest 魔力的标准 .NET4 控制台应用程序执行此操作并设置凭据时,它按预期工作。尝试在 WP7 模拟器上执行相同的基本 HttpWebRequest 会导致 WebException 指出“远程服务器返回错误:NotFound。”。当深入研究这个异常时,我可以看到我的响应有一个“未授权”的状态描述。似乎根本没有发生任何身份验证。
接下来我尝试——当我读到设置凭据有时会导致问题时——直接设置“授权”请求头。你猜怎么着,结果是一样的。
我最终得到了以下代码并且没有想法。我希望这里有人能够帮助我并指出方法,我如何从我的 WP7 访问我的书签。
public void RetrieveRecentBookmarks(string userName, string password)
{
HttpWebRequest request = HttpWebRequest.CreateHttp(requestString);
byte[] bytes = System.Text.UTF8Encoding.UTF8.GetBytes(userName + ":" + password)
string authInfo = Convert.ToBase64String(bytes);
request.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " + authInfo;
RequestState state = new RequestState(request);
IAsyncResult result = request.BeginGetResponse(GetResponseCallback, state);
}
private static void GetResponseCallback(IAsyncResult asynchronousResult)
{
RequestState state = asynchronousResult.AsyncState as RequestState;
HttpWebRequest request = state.Request as HttpWebRequest;
// Here is where it breaks...
HttpWebResponse response = request.EndGetResponse(asynchronousResult) as HttpWebResponse;
}
提前致谢!