Собственно запрос для курла такой:
curl -v --request PUT \
--url https://6in4.ru/tunnel/%API%/%ID% \
--header 'Content-Type: application/json' \
--data '{"ipv4remote": "%IP%"}'
под линуксом запрос курлом работает, а вот в микротик такая конструкция нет:
Код: Выделить всё
:local api "blahblah";
:local id "12345678";
:local i;
:local p;
:set i [/ip cloud get public-address];
:set p "{\"ipv4remote\":\"$i\"}";
#проверяю значение переменных
:put $api;
:put $id;
:put $i;
:put $p;
#конец проверки
/tool fetch http-method=post http-header-field="Content-Type:application/json" http-data="$p" url="https://6in4.ru/tunnel/$api/$id" keep-result=no;
В винде аналогичная ошибка, связанная с экранированием символов, здесь похоже так же:
* upload completely sent off: 29 bytes
< HTTP/1.1 400 Bad Request
< Server: nginx/1.27.0
< Date: Wed, 21 Aug 2024 17:40:05 GMT
< Content-Type: application/json; charset=utf-8
< Content-Length: 68
< Connection: keep-alive
< X-XSS-Protection: 1; mode=block
< X-Content-Type-Options: nosniff
< Cache-Control: no-transform
< Referrer-Policy: no-referrer
<
{"message":"invalid character '\\'' looking for beginning of value"}* Connection #0 to host 6in4.ru left intact
ЧЯДНТ?