![]() |
|
|
|
|
#1
|
||||
|
||||
|
не удается совершить get запрос
на этот адресс http://pogoda.yandex.ru/тольятти/details/ ошибка 400 синтаксис вроде, кирилицу не хочет принимать, но мне надо именно так, из браузера так работает, мб каким другим заросом сделать надо? посоветуйте |
|
#2
|
||||
|
||||
|
посмотри в сторону Gismeteo.Informer, легче распарсить, да и сделано специально для сторонних программ\веб-сайтов
|
|
#3
|
||||
|
||||
|
Так, большинство сайтов в url'е кириллицу не понимают. Тебе запрос из http://pogoda.yandex.ru/тольятти/details/ надо трансформировать в http://pogoda.yandex.ru/%D0%A2%D0%BE%D0%BB%D1%8C%D1%8F%D1%82%D1%82%D0%B8/details/.
Отлавливаешь русские символы в url'е и заменяешь результатом функции ord. Код:
var
url{то что получим на выходе},stroka{тот url что требуется преобразовать}:string;
s:char;
i:integer;
//...
for i:=1 to length(stroka) do
begin
s:=stroka[i];
if s in ['А'..'Я', 'а'..'я'] then
begin
url:=url+'%'+inttostr(ord(s));
end
else
url:=url+s;
end;Последний раз редактировалось march, 07.02.2011 в 20:24. |
|
#4
|
||||
|
||||
|
march, это будет так понимаю в строке символы преобразовывать?
AleD http://informer.gismeteo.ru/getcode/xml.php?id=27612 от сюда пробовал парсить но чтото иногда быстро приходит иногда от вобще оттуда не приходит и программа секунд на 30 подвисает cod-код города all:=idhttp1.Get('http://informer.gismeteo.ru/xml/'+cod+'_1.xml'); Последний раз редактировалось ALexandr555, 07.02.2011 в 20:43. |
|
#5
|
||||
|
||||
|
да, преобразование символов, потом ипользуешь этот url (можно и в латиницу)
|
|
#6
|
||||
|
||||
|
Код:
var
url,stroka:string;
s:char;
i:integer;
Begin
url:='http://pogoda.yandex.ru/'
stroka:='тольятти';
for i:=1 to length(stroka) do
begin
s:=stroka[i];
if s in ['А'..'Я', 'а'..'я'] then
begin
url:=url+'%'+inttostr(ord(s));
end
else
url:=url+s;
end;
url:=url+'/details/';
end; |