私は自分の問題に対する答えを数日間探していましたが、残念ながら運がありませんでした. ここにいる皆さんが私を助けてくれることを願っています。
したがって、私がやりたいことは、最近のブックマーク (delicious 用語では「投稿」) を返す、delicious.com API に対する単純な呼び出しです。したがって、次の URIを使用して、delicious.com にログインするための資格情報を入力するだけです。
標準の .NET4 コンソール アプリケーションから HttpWebRequest の魔法と Credentials を設定してこれを行うと、期待どおりに動作します。WP7 エミュレーターで同じ基本的な HttpWebRequest を実行しようとすると、「リモート サーバーがエラーを返しました: NotFound.」という WebException が発生します。この例外を深く掘り下げると、応答の StatusDescription が「Unauthorized」であることがわかります。認証がまったく行われていないようです。
次に、資格情報を設定すると問題が発生することを読んだので、「Authorization」RequestHeaderを直接設定することを試みました。なんと、結果は同じでした。
私は次のコードになり、アイデアがありませんでした。ここの誰かが私を助けて、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;
}
前もって感謝します!