Что такое кодировка содержимого по умолчанию для пробоотборника HTTP-запросов jmeter?

Я просматриваю поле Content Encoding в пробоотборнике HTTP-запросов. Не путайте это с заголовком HTTP Content-Type.

По умолчанию значение в поле «Кодировка содержимого» пустое. Что значит пустой? Какова кодировка контента по умолчанию для jmeter HTTPRequest? Это ASCII, ANSI или UTF-8?

В этом руководстве только упоминается, что это поле не является обязательным.

введите здесь описание изображения


person variable    schedule 07.02.2020    source источник
comment
Что вы ожидаете делать с этим значением? не думаю, что это повлияет   -  person user7294900    schedule 07.02.2020


Ответы (2)


Ответ Дмитрия указывает на код, связанный с кодированием строк запроса, но это привело меня к просмотру код класс PostWriter, который создает фактическое тело запроса — и если сэмплер не обеспечивает кодировку контента — ISO-8859 -1 используется для кодирования тела:

public static final String ENCODING = StandardCharsets.ISO_8859_1.name();

...

String contentEncoding = sampler.getContentEncoding();
if(contentEncoding == null || contentEncoding.length() == 0) {
    contentEncoding = ENCODING;
}
person Tomasz Poradowski    schedule 10.08.2020

Согласно JMeter 5.2

  1. Изучение HTTPSamplerBase.java:1136

    // Check if the sampler has a specified content encoding
    if (JOrphanUtils.isBlank(lContentEncoding)) {
        // We use the encoding which should be used according to the HTTP spec, which is UTF-8
        lContentEncoding = EncoderCache.URL_ARGUMENT_ENCODING;
    }
    
  2. Изучение EncoderCache:31

    /** The encoding which should be usd for URLs, according to HTTP specification */
    public static final String URL_ARGUMENT_ENCODING = StandardCharsets.UTF_8.name();
    

Таким образом, оставление поля пустым равнозначно установке его на UTF-8

person Dmitri T    schedule 11.02.2020
comment
Я не думаю, что это правильно. Пытаясь отправить JSON в API, я вижу, что если я оставлю поле кодировки содержимого пустым, запрос завершится ошибкой. Но если поставить UTF-8, то все работает. - person variable; 12.02.2020