LINUX.ORG.RU

c++ Использование библиотеки curl, потеря части ответа от сервера


1

1

Добрый день! Отправляю SOAP-запросы и получаю ответы от сервера, используя библиотеку curl (CURLOPT_WRITEFUNCTION). При этом наблюдаю, что иногда часть ответа от сервера теряется (приходит только вторая половина xml-ответа). Не подскажете, с чем это может быть связано? Может быть, можно выставить у себя какую-нибудь опцию, чтобы предотвратить подобное поведение. Можно ли как-то убедиться в том, что сервер, действительно, отправляет ответ полностью?(может быть tcpdump c какими-то параметрами, не подскажете как должна выглядеть команда tcpdump для такой проверки, и как из нее выделить именно xml-ответ, который отправил сервер).


Дорогая Маша! Забудьте про tcpdump - он ничего не знает о протоколе http. Крайне рекомендую Wireshark - он умеет не только это, но и многое другое, например, декодировать заголовки пакетов.

Success story: как раз вчера разбирался, почему у меня сервер в ответ на POST-запрос тупо обрывает соединение. И именно сабж помог узнать, что дело в отсутствии лишнего \r\n, которое по rfc не обязательно, но для данного веб сервера (патченный китайцами boa) оказалось фатальным.

eagleivg ★★★★★
()

если речь не идёт про анализ в реальном времени, то есть tcpflow - он записывает сессии tcp по отдельным файлам.

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Wireshark можно использовать под Linux?Анализируя, перехваченный им дамп я точно смогу сказать,что сервер послал такой-то xml ответ?

Masha
() автор топика

да отправте ее уже замуж! до коли она будет насиловать лор?

anonymous
()
Ответ на: комментарий от Masha

Wireshark можно использовать под Linux?

http://ru.wikipedia.org/wiki/Wireshark

Операционная система: Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, другие Unix-подобные системы, Windows

anonymous
()
Ответ на: комментарий от Masha

Wireshark можно использовать под Linux?

Wireshark сначала (тогда под именем Ethereal) был под Linux и Solaris, а уже потом под Windows.

i-rinat ★★★★★
()
Ответ на: комментарий от Masha

Ubuntu установлена на виртуальной машине(VirtualBox), могу ли я как-то с помощью Wireshark анализировать SOAP-трафик? Сейчас в Wireshark у меня не отображается ни одного доступного интерфейса.

Masha
() автор топика
Ответ на: комментарий от Masha

Сейчас в Wireshark у меня не отображается ни одного доступного интерфейса.

Возможно потому что запущен не из под root.

elijah_sd
()
Ответ на: комментарий от UVV

Ты погоди, скоро она будет игнорировать данные ей советы

Да она всегда так делает.

false ★★★★★
()
Ответ на: комментарий от elijah_sd

То есть в принципе для виртуальной машине с этим не должно быть проблем? Пароля root я не знаю:(

Masha
() автор топика
Ответ на: комментарий от UVV

Врядли.

А Маша конкретно из нашей конторы меня в некоторых технических вопросах спокойно за пояс заткнёт.

yoghurt ★★★★★
()
Ответ на: комментарий от anonymous

Спасибо! Теперь интерфейсы доступны.

Masha
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.