Это может выглядеть, как и другие код образцов работ, но это, вероятно, означает, что он просто не был запущен все же.
Две функции библиотеки Web.Contents('url')
и Web.Page(Web.Contents('url'))
использовать различные клиенты HTTP.
Web.Contents
использует довольно простой HTTP-клиент, но Web.Page
по не преобразованному Web.Contents
вместо этого использует браузер IE для загрузки URL-адреса напрямую. IE очень прощает любые ошибки протокола HTTP, но основной HTTP-клиент является гораздо более строгим, что вызывает ошибку, которую вы видите.
Позвонив Binary.Buffer
или Text.Replace
в «между», который пропустит оптимизацию где Web.Page
использует браузер непосредственно, и вместо этого он использует Web.Contents
, чтобы сделать веб-запрос, а затем загружает эти байты в браузере.
Таким образом, в этом случае, если вы вызываете
Web.Page(Web.Contents("http://vote.sos.ca.gov/returns/president/party/democratic/county/all"))
Вы получите хороший результат таблицу, но «из Интернета» будет нарушена, потому что Web.Contents('url')
сама по себе будет ошибка.
Поскольку вы разделили URL, я был в состоянии попробовать http://vote.sos.ca.gov/returns/president/party/democratic/county/all и получить ту же самую проблему.
Основной проблемой является четвёртым печенье в заголовке ответа HTTP имеет неверный шестнадцатеричный символ 0x01 прямо посередине:
Может быть, это то, что http://vote.sos.ca.gov/ может исправить на своем сервере? Я попытался подав «сообщение об ошибке» на их странице Контакты но я не уверен, что это правильный канал ...
BTW, наша библиотека HTTP-клиент не дает очень хорошие сообщения об ошибках, есть ничего неправильного CR или LF символов. Даже если бы не было, в этом случае ничего не может сделать Text.Replace
над телом, потому что проблема в заголовках HTTP.
Благодарим вас за это, я очень ценю это. Да, похоже, что это в значительной степени связано с CDN или продуктом API «Инкапсула», который используется на этом и других сайтах. –