Matlab urlread error within timer function: "Either this URL could not be parsed or the protocol is not supported."

2 views (last 30 days)
I am using a timer function in matlab to continuously execute a certain script. Within this script, I am using urlread to retrieve data from webservices, which works like a charm.
I am now trying to use urlread to execute a simple http-request within this script to insert data into a mysql-database. Thus, I simply specify the url-string and define the value to be parsed to the php parser.
Code-within script being executed in timer-function:
db_url = 'http://someurl/update.php?value=';
db_url = strcat(db_url,num2str(value));
urlread(db_url);
clear db_url
My problem is the following: When I run the timer, it works fine for one execution, but then stops displaying the following error:
"Either this URL could not be parsed or the protocol is not supported."
What is going wrong? When I check my mysql database, I see that one new line has been added to my database, which means it generally works, just won't execute multiple times within the timer.
Any idea what is going wrong? Many thanks in advance!

Accepted Answer

Benvaulter
Benvaulter on 14 Jun 2015
I figured out what the problem was. The value variable is an array with increasing in size each iteration. Thus, what I needed to do was specify value(end), like so:
db_url = 'http://someurl/update.php?value=';
db_url = strcat(db_url,num2str(value(end)));
urlread(db_url);
clear db_url

More Answers (1)

Jan
Jan on 14 Jun 2015
Edited: Jan on 14 Jun 2015
Try to debug the code.
A short error message might be useful also:
try
urlread(db_url);
catch ME
fprintf(2, 'URLREAD Failed: %s\n', db_url);
error(ME.message);
end
Note: Variables are cleared automatically when the function is finished. Therefore the clear db_url is not useful in Matlab.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!