私は数日間、私の問題に対する答えを探していましたが、悲しいことに運がなかったのです。ここにいる皆さんが私を助けてくれることを願っています。Windows Phone 7からHttpWebRequestsを実行するには?
私がしたいことは、最近のブックマーク(美味しい用語では「投稿」)を返すdelicious.com APIに対する単純な呼び出しです。したがって、単にURIを使用し、delicious.comにログインするための資格情報を入力するだけです。
標準の.NET4コンソールアプリケーションからHttpWebRequestの魔法を使ってこれを行い、資格情報を設定すると、期待通りに機能します。 WP7エミュレータで同じ基本HttpWebRequestを実行しようとすると、「リモートサーバーがエラーを返しました:NotFound」というWebExceptionが発生します。 この例外の詳細については、私のレスポンスにStatusDescriptionが「Unauthorized」であることがわかります。それはまったく認証に何の問題もないようです。
次へ私は、Credential sometiemesが問題につながる設定を読んで、 "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;
}
ありがとうございます!
エミュレータがWebで動作しない場合があります。通常、エミュレータブラウザを使用しようとするとエミュレータの問題であることが確認されます。それは通常失敗するでしょう。実際の電話を持っている場合は、それを使ってデバッグを試みてください。別のテストは、bing.comのようなものを打つと結果が戻ってくるかどうかを調べることです。 –
エミュレータのブラウザは、私が試してみるたびにうまく動作します。また、bing.comに行くとき、私のWebRequestは楽しく返します。 私はWP7のために開発している最初のアプリケーションであるため、私は登録された開発者ではないので、デバイス上のデバッグはまだオプションではありません。 私はおそらく、99ドルをそれにもっと多くの時間を費やす代わりに使うべきです... – bbohac