при попытке скачать mp3; возникает ошибка "Удаленный сервер возвратил ошибку: NotFound." - PullRequest
0 голосов
/ 26 июля 2011

когда я загружаю две одинаковые ссылки, такие как ссылка http://files.sparklingclient.com/099_2010.07.09_WP7_Phones_In_The_Wild.mp3 все они могут быть загружены IE. Но когда я загружаю в wp7, загрузчик может быть загружен в первый раз, когда появляется ошибка "" Удаленный сервер возвратил ошибку: NotFound. "" Я не знаю, почему.is webURL не подходит для wp7?

private void Button_Click(object sender, RoutedEventArgs e)
{
    stringUri = "http://upload16.music.qzone.soso.com/30828161.mp3";
  //stringUri = "http://files.sparklingclient.com/079_2009.08.20_ElementBinding.mp3";
    Uri uri = new Uri(stringUri, UriKind.Absolute);            
    GetMusic(uri);
}
private void GetMusic(Uri uri)
{
    request = WebRequest.Create(uri) as HttpWebRequest;
    request.Method = "Post";
    request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";            
    string header= request.Accept;
    request.BeginGetResponse(new AsyncCallback(GetAsynResult),request);

}
void GetAsynResult(IAsyncResult result)
{           

    HttpWebResponse reponse = request.EndGetResponse(result) as HttpWebResponse;
    if (reponse.StatusCode == HttpStatusCode.OK)
    {

       Stream stream=reponse.GetResponseStream();
       SaveMusic(stream, "music");
       ReadMusic("music");
       Deployment.Current.Dispatcher.BeginInvoke(
           () =>
           {
               me.AutoPlay = true;
               me.Volume = 100;
               songStream.Position = 0;
               me.SetSource(songStream);
               me.Play();
          });

    }        
}
protected void SaveMusic(Stream stream,string name)
{

            IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
            if (!fileStorage.DirectoryExists("Source/Music"))
            {
                fileStorage.CreateDirectory("Source/Music");
            }
            using (IsolatedStorageFileStream fileStream = IsolatedStorageFile.GetUserStoreForApplication().OpenFile("Source\\Music\\" + name + ".mp3", FileMode.Create))
            {
                byte[] bytes = new byte[stream.Length];
                stream.Read(bytes, 0, bytes.Length);
                fileStream.Write(bytes, 0, bytes.Length);
                fileStream.Flush();
            }

}
protected void ReadMusic(string name)
{

        using (IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            songStream = null;
            songStream = new IsolatedStorageFileStream("Source\\Music\\" + name + ".mp3", FileMode.Open, fileStorage);                  

        }

}

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Пожалуйста, попробуйте изменить

request.Method = "Post" 

до

request.Method = "Get" 
0 голосов
/ 26 июля 2011

Если вы столкнулись с этой проблемой на эмуляторе, пробовали ли вы запустить Fiddler ?Он будет перехватывать HTTP-запросы, и вы сможете увидеть, соответствует ли ожидаемый вызов серверу.

Не забудьте закрыть / снова открыть эмулятор после запуска Fiddler, чтобы он принималпрокси.

Ответ NotFound может также возникать с неверными сертификатами SSL.Похоже, это не связано с вашей проблемой, но нужно иметь в виду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...