Почему твиттер дважды кодирует ссылки на сущности XML?
Вот пример твита:
xml entity ref test < & '
Ответ от статусов / friends_timeline:
<status>
<created_at>Wed Jun 24 00:16:15 +0000 2009</created_at>
<id>2302770346</id>
<text>xml entity ref test &lt; & '</text>
<source>web</source>
<truncated>false</truncated>
не должно быть
< & '
Я сделал еще один тест, вот что происходит в посте http, чтобы отправить обновление:
снова понюхать <& '</p>
почтовые данные:
authenticity_token=secret_sauce_removed&status=sniff+again+%3C+%26+'&twttr=true&return_rendered_status=true
Я подтвердил замечание Джастина о том, что только <> кодируется дважды. Первая строка - XML-ответ, 2-я строка - JSON.
<text>" & ' &lt; &gt;</text>
"text":"\" & ' < >"
В документации Твиттера написано, что "экранированный и кодированный HTML статус тела", я думаю, экранированный означает xml-кодировку <>.
Но я все еще не понимаю, почему они это делают. Никакие веб-страницы не участвуют во всем процессе. Твит отправляется через URL-адрес остального API и извлекается как xml или json.