ServiceStack - использование сжатия gzip / deflate с запросами JSONP

У меня есть сервис ServiceStack, который сжимает ответ, используяRequestContext.ToOptimizedResult()Например:

[Route("/numbers/search")]
public class FindNumbers
{
}

public object Get(FindNumbers query)
{
    var data = new List<string> { "One", "Two", "Three" };
    return RequestContext.ToOptimizedResult(data);
}

Это прекрасно работает при выдаче запроса, как:

GET http://myhost:13487/numbers/search.json

И сжимается, как и ожидалось сAccept-Encoding заголовок запроса:

Accept-Encoding: gzip,deflate,sdch

Я также могу выдать запрос JSONP:

GET http://myhost:13487/numbers/search?callback=func

который правильно возвращаетapplication/javascript обратный вызов (без сжатия).

ПРОБЛЕМА

Когда я добавляюAccept-Encoding заголовок запроса на запрос JSONP, ответ - сжатые данные JSON в соответствии с исходным запросом JSON, а не сжатыйapplication/javascript Перезвони.

Существуют ли очевидные причины, по которым мне не хватает такого поведения, или это просто ошибка в ServiceStack? Я ожидал бы получить сжатый обратный вызов JSONP в ответе, но я довольно зеленый с JSONP, и может быть веская причина для отката.

Обратите внимание, я работаю через источник ServiceStack, но я решил, что получу это, так как больше мозгов лучше, чем один ...

заранее спасибо

РЕДАКТИРОВАТЬ

Итак, я проследил проблему в следующем источнике

https://github.com/ServiceStack/ServiceStack/blob/5d09d439cd1a13712411552e2b3ede5a71af2ee5/src/ServiceStack/Host/Handlers/GenericHandler.cs#L79

а также

https://github.com/ServiceStack/ServiceStack/blob/5d09d439cd1a13712411552e2b3ede5a71af2ee5/src/ServiceStack/Host/RestHandler.cs#L107

if (doJsonp && !(response is CompressedResult))
    return httpRes.WriteToResponse(httpReq, response, (callback + "(").ToUtf8Bytes(),")".ToUtf8Bytes());

return httpRes.WriteToResponse(httpReq, response);

Таким образом, если ответ является сжатым результатом, то независимо от требования к JSONP через?callback=func Ответ будет просто содержать сжатый JSON (в случае примера выше), что соответствует моим выводам выше. Таким образом, похоже, что оболочку обратного вызова jsonp нужно применять ранее в стеке вызовов.

Ответы на вопрос(1)

Ваш ответ на вопрос