Получение метаданных SHOUTcast на Mac - PullRequest
1 голос
/ 18 апреля 2010

Я создаю приложение в Objective-C, и мне нужно получить метаданные из потока SHOUTcast. Я попробовал это:

NSURL *URL = [NSURL URLWithString:@"http://202.4.100.2:8000/"];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL];
    [request addValue:@"1" forHTTPHeaderField:@"icy-metadata"];
    [request addValue:@"Winamp 5/3" forHTTPHeaderField:@"User-Agent"];
    [request addValue:@"audio/mpeg" forHTTPHeaderField:@"Content-Type"];
    [NSURLConnection connectionWithRequest:request delegate:self];

Мне нужно было бы получить заголовки из этого запроса, чтобы получить информацию, верно? К сожалению, он продолжает возвращать эти заголовки:

Date = "17 Apr 2010 21:57:14 -0200";

"Max-Age" = 0;

Что я делаю не так?

Ответы [ 3 ]

6 голосов
/ 08 октября 2010

Я нашел ответ на этот вопрос. Просто добавьте 7.html в конце URL-адреса и проанализируйте файл.

т.е. http://38.96.148.138:7534/7.html

1 голос
/ 27 ноября 2012

Решение Фернандо Валенте для этой проблемы

http://www.fvalente.org/blog/2012/03/15/shoutcast-metadata-the-easy-way/

0 голосов
/ 18 апреля 2010

Похоже, что shoutcast не следует стандартам обмена HTTP, а его заголовки и тело ответа не разделены двумя новыми строками. NSURLConnection / NSURLResponse не могут разобрать заголовки; однако, connection:didReceiveResponse: все еще срабатывает, только с пустым NSURLResponse. Это станет ясно, если мы посмотрим на данные, поступающие в connection:didReceiveData:. Первый полученный чанк будет содержать заголовки метаданных.

...