Если вы просто сконструируете тело как строку и передадите его таким образом http.post()
, его следует отправить как есть, без каких-либо изменений. Этот код должен проиллюстрировать это, используя httpbin.org:
import http from "k6/http";
import crypto from "k6/crypto";
let payload = `http_request_duration_seconds_bucket{le="0.05"} 24054
http_request_duration_seconds_bucket{le="0.1"} 33444
http_request_duration_seconds_bucket{le="0.2"} 100392
`;
export default function (data) {
console.log(crypto.sha256(payload, "hex"));
let resp = http.post("https://httpbin.org/anything", payload);
console.log(crypto.sha256(resp.json().data, "hex"));
console.log(resp.body);
}
, он выведет что-то вроде этого:
INFO[0000] 773f0d81713fca0663ad7a01135bf674b93b0859854b2248368125af3f070d29
INFO[0001] 773f0d81713fca0663ad7a01135bf674b93b0859854b2248368125af3f070d29
INFO[0001] {
"args": {},
"data": "http_request_duration_seconds_bucket{le=\"0.05\"} 24054\nhttp_request_duration_seconds_bucket{le=\"0.1\"} 33444\nhttp_request_duration_seconds_bucket{le=\"0.2\"} 100392\n",
"files": {},
"form": {},
"headers": {
"Connection": "close",
"Content-Length": "161",
"Host": "httpbin.org",
"User-Agent": "k6/0.23.1 (https://k6.io/)"
},
"json": null,
"method": "POST",
"url": "https://httpbin.org/anything"
}
Указатели не так тверды, как они звучат. Как другие уже сказали, они - переменные, которые содержат адрес некоторой другой переменной. Предположим, что я хотел дать Вам направления своему дому. Я не дал бы Вам изображение своего дома или масштабную модель моего дома; я просто дал бы Вам адрес. Вы могли вывести то, в чем Вы нуждались от этого.
Таким же образом много языков делает различие между передачей значением и передачей ссылкой. По существу это означает, что я передам весь объект в каждый раз, когда я должен обратиться к нему? Или, я просто выделю, это - адрес так, чтобы другие могли вывести то, в чем они нуждаются?
Наиболее современные языки скрывают эту сложность путем выяснения, когда указатели полезны и оптимизируют это для Вас. Однако, если Вы знаете то, что Вы делаете, ручное управление указателем может все еще быть полезным в некоторых ситуациях.
Указатель является переменной, которая содержит адрес другой переменной. Это позволяет Вам ссылаться на другую переменную косвенно. Например, в C:
// x is an integer variable
int x = 5;
// xpointer is a variable that references (points to) integer variables
int *xpointer;
// We store the address (& operator) of x into xpointer.
xpointer = &x;
// We use the dereferencing operator (*) to say that we want to work with
// the variable that xpointer references
*xpointer = 7;
if (5 == x) {
// Not true
} else if (7 == x) {
// True since we used xpointer to modify x
}
Эта статья Википедии даст Вам подробную информацию о том, каков указатель:
В информатике указатель является типом данных языка программирования, значение которого относится непосредственно к (или "указывает на"), другое значение, сохраненное в другом месте в памяти компьютера с помощью ее адреса. Получение или запрос значения, к которому относится указатель, называют, разыменовывая указатель. Указатель является простой реализацией типа данных справочного характера (хотя это очень отличается от средства, называемого ссылкой в C++). Указатели на данные улучшают производительность для работ в циклическом режиме, таких как пересекающая строка и древовидные структуры, и указатели на функции используются для методов привязки в Объектно-ориентированном программировании и динамическом подключении к динамически подключаемым библиотекам (DLLs).
Было несколько обсуждений в ТАК об этой теме. Можно найти информацию о теме со ссылками ниже. Существуют несколько другое соответствующее ТАК обсуждения предмета, но я думаю, что они были самыми релевантными. Поиск 'указателей [C++]' в окне поиска (или 'указателей [c]') и Вы получите больше информации также.
В C++ я не могу схватить указатели и классы
Каково различие между современными 'Ссылками' и традиционными 'Указателями'?
Как кто-то уже упоминает, указатель является переменной, которая содержит адрес другой переменной.
Это главным образом используется при создании новых объектов (во времени выполнения).