Старый 08.02.2010, 16:16   #1
Специалист
 
Регистрация: 25.06.2009
Адрес: Красноярск
Сообщений: 443
Вес репутации: 200
BIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордится
Отправить сообщение для BIOHAZARD с помощью ICQ
По умолчанию не могу побороть ping сервис Яши

На странице http://blogs.yandex.ru/pings/info/ беру код запроса к пинг серверу
Код:
POST /RPC2 HTTP/1.1
Host: ping.blogs.yandex.ru
Content-Type: text/xml
Content-length: 318

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
    <methodName>weblogUpdates.ping</methodName>
    <params>
        <param>
            <value>Лучший подарок — это книга</value>
        </param>
        <param>
            <value>http://clubs.ya.ru/company/rss/posts.xml</value>
        </param>
    </params>
</methodCall>
формирую свой запрос по образцу выше
PHP код:
$message = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<methodCall>
    <methodName>weblogUpdates.ping</methodName>
    <params>
        <param>
            <value>
$title</value>
        </param>
        <param>
            <value>
$href</value>
        </param>
    </params>
</methodCall>"
;

$ch curl_init();
curl_setopt($chCURLOPT_URL"$url");
curl_setopt($chCURLOPT_CONNECTTIMEOUT2);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_POSTFIELDS"$message");
$result curl_exec($ch);
curl_close($ch);
Гоша таким запросом вполне доволен, а Яша матюкается, выдаёт тупо
Код:
<?xml version="1.0" encoding="iso-8859-1"?>
<title>400 - Bad Request</title>
<h1>400 - Bad Request</h1>
Может подскажете, где тут собака зарыта? А то уже не знаю где копать.
__________________
Решил стать бессмертным. Пока получается.
Не получается воткнуть код на сайт? Могу помочь. ася: 858-368. Рефералам бесплатно
BIOHAZARD вне форума   Ответить с цитированием
Старый 08.02.2010, 16:24   #2
Мастер
 
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 236
ahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущее
По умолчанию

Разве POST данные не надо encode'ить?
Попробуйте завернуть $message в rawurlencode
ahsinis вне форума   Ответить с цитированием
Старый 08.02.2010, 16:34   #3
Специалист
 
Регистрация: 25.06.2009
Адрес: Красноярск
Сообщений: 443
Вес репутации: 200
BIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордится
Отправить сообщение для BIOHAZARD с помощью ICQ
По умолчанию

@$&, не в тот раздел закинул, хотел в Разработка и сопровождение сайтов опубликовать
перекиньте кто-нибудь


Добавлено через 8 минут
Цитата:
Сообщение от ahsinis Посмотреть сообщение
Попробуйте завернуть $message в rawurlencode
При таком раскладе Яша вообще ничего не говорит, Гоша выдаёт ошибку
__________________
Решил стать бессмертным. Пока получается.
Не получается воткнуть код на сайт? Могу помочь. ася: 858-368. Рефералам бесплатно

Последний раз редактировалось BIOHAZARD; 08.02.2010 в 16:34. Причина: Добавлено сообщение
BIOHAZARD вне форума   Ответить с цитированием
Старый 08.02.2010, 16:55   #4
Мастер
 
Аватар для Sergius
 
Регистрация: 09.06.2009
Сообщений: 602
Вес репутации: 217
Sergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущее
По умолчанию

Цитата:
Сообщение от BIOHAZARD Посмотреть сообщение
При таком раскладе Яша вообще ничего не говорит, Гоша выдаёт ошибку
Может, это через сокеты сделать проще?
PHP код:
<?php
$mainlink
='ping.blogs.yandex.ru';
$message='сообщение';
$sock fsockopen($mainlink80); //проверить порт
$header='POST /RPC2 HTTP/1.1
Host: ping.blogs.yandex.ru
Content-Type: text/xml
Content-length: 318\n\n".$message;
fputs($sock,$header);
 while(!feof($sock)):
    $ss = fgets($sock,4096);
    echo $ss;
 endwhile;
Может где-то ошибся....
Sergius вне форума   Ответить с цитированием
Старый 08.02.2010, 17:45   #5
Мастер
 
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 236
ahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущее
По умолчанию

Конечно! (невнимательно посмотрел заголовок)
Боюсь, через cURL вы не сможете послать заголовок
Код:
POST /RPC2 HTTP/1.1
Только в последнем примере надо 318 заменить на strlen($message)
ahsinis вне форума   Ответить с цитированием
Старый 08.02.2010, 19:19   #6
Мастер
 
Аватар для Sergius
 
Регистрация: 09.06.2009
Сообщений: 602
Вес репутации: 217
Sergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущееSergius - прекрасное будущее
По умолчанию

Цитата:
Сообщение от ahsinis Посмотреть сообщение
Только в последнем примере надо 318 заменить на strlen($message)
Угу. Не забывая при этом , что код в мультибайтной UTF-8.
Sergius вне форума   Ответить с цитированием
Старый 08.02.2010, 20:03   #7
Специалист
 
Регистрация: 25.06.2009
Адрес: Красноярск
Сообщений: 443
Вес репутации: 200
BIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордится
Отправить сообщение для BIOHAZARD с помощью ICQ
По умолчанию

Цитата:
Сообщение от ahsinis Посмотреть сообщение
Боюсь, через cURL вы не сможете послать заголовок
эта строка формируется автоматом, иначе скрипт не знал бы к какой странице вообще обращаться

Цитата:
Сообщение от ahsinis Посмотреть сообщение
Только в последнем примере надо 318 заменить на strlen($message)
а это и вовсе необязательный параметр
__________________
Решил стать бессмертным. Пока получается.
Не получается воткнуть код на сайт? Могу помочь. ася: 858-368. Рефералам бесплатно
BIOHAZARD вне форума   Ответить с цитированием
Старый 08.02.2010, 20:34   #8
Специалист
 
Аватар для maksim7
 
Регистрация: 05.05.2008
Адрес: Город Герой О_o
Сообщений: 354
Вес репутации: 216
maksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущее
По умолчанию

BIOHAZARD, у вас с кодировками точно всё в порядке?
__________________
ч/б подпись: I work for money, if you want loyalty get a dog.
Я покупаю контент здесь и здесь
maksim7 вне форума   Ответить с цитированием
Старый 08.02.2010, 21:19   #9
Специалист
 
Регистрация: 25.06.2009
Адрес: Красноярск
Сообщений: 443
Вес репутации: 200
BIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордитсяBIOHAZARD - за этого человека можно гордится
Отправить сообщение для BIOHAZARD с помощью ICQ
По умолчанию

у меня весь сайт в утф, так что с этой стороны вопрос отпадает
хотя надо будет и это попробовать

Добавлено через 30 минут
проверил: создал запрос с $title и $href содержащими только основную латиницу - всё равно Яшка в отказ идёт, а Гоша хавает на ура
__________________
Решил стать бессмертным. Пока получается.
Не получается воткнуть код на сайт? Могу помочь. ася: 858-368. Рефералам бесплатно

Последний раз редактировалось BIOHAZARD; 08.02.2010 в 21:19. Причина: Добавлено сообщение
BIOHAZARD вне форума   Ответить с цитированием
Старый 08.02.2010, 21:27   #10
Специалист
 
Аватар для maksim7
 
Регистрация: 05.05.2008
Адрес: Город Герой О_o
Сообщений: 354
Вес репутации: 216
maksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущееmaksim7 - прекрасное будущее
По умолчанию

BIOHAZARD, у вас файл который запрос отправляет в какой кодировке?
и
PHP код:
$message = "<?xml version="1.0\" encoding=\"UTF-8\"?> 
...
кавычка не "прослешена" это опечатка? или в коде тоже самое?
PHP код:
$message = "<?xml version=\\"1.0\" encoding=\"UTF-8\"?>
<methodCall>
    <methodName>weblogUpdates.ping</methodName>
    <params>
        <param>
            <value>Тест</value>
        </param>
        <param>
            <value>http://clubs.ya.ru/company/rss/posts.xml</value>
        </param>
    </params>
</methodCall>"
;

$mainlink='ping.blogs.yandex.ru';
$sock fsockopen($mainlink80$errno$errstr30); //проверить порт
if (!$sock) {
    echo 
"$errstr ($errno)<br />\n";
} else {
    
$header="POST /RPC2 HTTP/1.1\r\n";
    
$header.="Host: ping.blogs.yandex.ru\r\n";
    
$header.="Content-Type: text/xml\r\n";
    
$header.="Content-Length: "strlen($message)."\r\n\r\n";
    
$header.=$message
    
fputs($sock,$header);
    
    while(!
feof($sock)){
        
$ss fgets($sock,128);
        echo 
$ss;
    }
    
fclose($sock);
}
даёт ответ:
PHP код:
HTTP/1.1 200 OK
Transfer
-Encodingchunked
Content
-typetext/xml
Date
Mon08 Feb 2010 18:23:52 GMT
Server
lighttpd/1.4.19 
Добавлено через 2 минуты
насчет <?xml version=\"1.0\" encoding=\"UTF-8\"?>
уже понял

сохраните ваш файл в utf-8
и strlen на mb_strlen поменять...

как то так
__________________
ч/б подпись: I work for money, if you want loyalty get a dog.
Я покупаю контент здесь и здесь

Последний раз редактировалось maksim7; 08.02.2010 в 21:27. Причина: Добавлено сообщение
maksim7 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу залогиниться на сапе. Войти в свой акк не могу. sommm Вопросы по работе системы 3 29.07.2009 01:17
HTML:Iframe-inf на сайтах. Как побороть? calatilo Курилка 8 20.04.2009 15:18
ping.blogs.yandex.ru или дурная голова рукам покоя не дает.... strange Яндекс 29 29.12.2008 13:25
Что за сервис? vagant Курилка 1 10.03.2008 21:54
Не могу побороть ERRORы b166ar Вопросы от новичков 3 08.12.2007 12:25


Часовой пояс GMT +3, время: 10:54.