Ошибка входа и загрузки Matlab при вызове WebClient.DownloadFile - PullRequest
1 голос
/ 23 февраля 2012

Мне удалось заставить Matlab войти в Google Trends для загрузки данных CSV.Сначала я использовал DownloadString, а затем преобразовал это в строку matlab, прежде чем использовать fastawrite для сохранения файла csv.

Однако, несмотря на то, что строка загружалась правильно, строки '\ n' теряли часть своего форматирования ... это странно, потому что, если я разделю файл на '\ n' в массив ячеек, форматированиевсе в порядке!

Итак, я пытаюсь заставить метод DownloadFile работать, но постоянно получаю следующую ошибку:

Нет метода 'DownloadFile' с соответствующей сигнатурой для класса 'System.Net.WebClient '

большое спасибо,

Вот функция:

NET.addAssembly('System.Net');

url = 'https://www.google.com/accounts/ClientLogin?accountType=GOOGLE&Email=email&Passwd=pass&service=trendspro&source=test-test-v1';
durl = System.String(strcat('http://www.google.com/trends/viz?q=', keyWord, '&date=all&geo=all&graph=all_csv&sort=0&scale=1&sa=N'));

if exist('googleWebClient','var')
    client = googleWebClient;
else
    client = System.Net.WebClient;

    response = client.DownloadString(url);
    sid = char(response.ToString);
    sid = regexp(sid, '\n', 'split'); sid = sid(1,1);

    client.Headers.Add('Cookie', char(sid));
    assignin('base','googleWebClient',client);
end

saveFilePath = System.String(strcat('C:\Dropbox\PROJECTS\', keyWord, '.csv'));


data = client.DownloadFile(durl, saveFilePath);

1 Ответ

0 голосов
/ 24 февраля 2012

Какой формат форматирования теряется?Похоже, вы просто получаете текст в режиме Unix (\ n) и затем открываете его в редакторе режима DOS (\ r \ n).Быстрый regexprep(sid, '\r?\n', sprintf('\r\n')) это исправит.Переключение на DownloadFile, вероятно, не произойдет.

Если вы получаете ошибку "no such method", WebClient.DownloadFile имеет тип возврата void.Похоже, что поддержка Matlab .NET учитывает эту часть подписи.Удалите назначение «data =», и оно пойдет.

>> client = System.Net.WebClient;
>> x = client.DownloadFile('http://www.cnn.com', 'C:\temp\blah.html')
No method 'DownloadFile' with matching signature found for class 'System.Net.WebClient'.

>> client.DownloadFile('http://www.cnn.com', 'C:\temp\blah.html')
>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...