Поддержка браузера многослойных ответов

BindingFlags.NonPublic не возвратит результатов отдельно. Как оказалось, объединение его с BindingFlags.Instance добивается цели.

MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, 
    BindingFlags.NonPublic | BindingFlags.Instance);
32
задан Diego Jancic 27 November 2009 в 00:28
поделиться

3 ответа

I've tested it, with a home-made server and a simple response. Not sure if the response is well-formed because no browser understands it 100% OK. But here are the results:

  • Firefox 67.0.1 (64-bit): Renders only the last part, others are ignored.
  • IE 11.503: Saves all the content in a single file (including the boundaries), nothing is rendered.
  • Chrome May 2019: Saves all the content in a single file, nothing is rendered.
  • Safari 4: Saves all the content in a single file, nothing is rendered.
  • Opera 10.10: Something weird. Starts rendering the first part as plain/text, and then clears everything. The loading progress bar hangs on 31%.

Here's the complete response, if anyone finds any error, please tell me and I'll try again:

HTTP/1.1 200 OK
Date: Tue, 01 Dec 2009 23:27:30 GMT
Vary: Accept-Encoding,User-Agent
Content-Length: 681
Content-Type: Multipart/mixed; boundary="sample_boundary";

Multipart not supported :(
--sample_boundary
Content-Type: text/css; charset=utf-8
Content-Location: http://localhost:2080/file.css

body
{
 background-color: yellow;
}
--sample_boundary
Content-Type: application/x-javascript; charset=utf-8
Content-Location: http://localhost:2080/file.js

alert("Hello from a javascript!!!");

--sample_boundary
Content-Type: text/html; charset=utf-8
Content-Base: http://localhost:2080/

<html>
<head>
    <link rel="stylesheet" href="http://localhost:2080/file.css">
</head>
<body>
 Hello from a html
    <script type="text/javascript" src="http://localhost:2080/file.js"></script>
</body>
</html>
--sample_boundary--
29
ответ дан 27 November 2019 в 21:08
поделиться

По моему опыту, составные ответы работают в Firefox, но не в Internet Explorer. Это было 2 года назад, при использовании браузеров того времени.

У меня были многочастные HTTP-ответы, работающие для потока изображений JPEG. Например, IP-камеры Axis используют поток движущихся изображений JPEG для Firefox. Для Internet Explorer Axis требует использования подключаемого модуля.

Если поддержка только Firefox соответствует вашим требованиям, то я рекомендую установить заголовок длины содержимого в каждой части многостраничного ответа.

4
ответ дан 27 November 2019 в 21:08
поделиться

Две идеи:

  1. Форматирование: я думаю, что "multipart" должно быть в нижнем регистре, и я не думаю, что точка с запятой ожидается в конце заголовка Content-type (хотя сомнительно, что это будет иметь значение, возможно, что может).
  2. Вы пробовали режим замены? Просто используйте: Content-type: multipart / x-mixed-replace - все остальное должно остаться прежним.
3
ответ дан 27 November 2019 в 21:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: