1

わかりました、これはこれまでで最もばかげた質問かもしれませんが、何が起こっているのか本当に理解できません:D

私はこの簡単なコードを持っています:

private void button1_Click(object sender, RoutedEventArgs e)
    {
        Uri url = new Uri("http://www.something.com/");
        WebClient wc = new WebClient();  
        wc.DownloadStringAsync(url);
        wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
    }

    void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        string result = e.Result;
    }

サーバーのアドレスが「ts4.travian.it」の場合、1 つのケース (明らかに私が必要とするケース) を除いて、うまく機能します。この場合、「リモート サーバーがエラーを返しました: NotFound」というエラーが表示されます。奇妙なことに、基本的に同じコードで小さなコンソール アプリケーションを作成すると、それが機能するということです...何かアイデアはありますか?

編集:より具体的には、サーバーはエラー403を返します-禁止されていますが、コンソールアプリケーションで同じコードを試してみると、完全に機能します...どう考えればよいかわかりません..ノキア Lumia 800

4

2 に答える 2

2

私は最終的に問題を見つけました。Silverlight フレームワークは HttpWebRequest の Referer ヘッダーを自動的に設定し、サーバー "ts4.travian.it" はそれが正しくないため拒否しました。

于 2012-08-18T16:38:21.347 に答える
0

その 1 つのケースの出力を提供するのを忘れましたか?

編集

ステータス コード ' 403 ' は、アプリにサーバーが気に入らない何かがあることを意味します。UA 文字列をチェックして、IE Mobile を使用していることがわかると思います。彼はあなたがコンテンツを見ることを許可しないことを望んでいます. ん?

于 2012-08-17T15:43:53.100 に答える