cURL snippet with double quotes adds a backslash before every # character
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- bash, javascript, node.js, zsh
Direzione di ricerca
Inizia da codegens/curl/lib/util.js ed esamina sanitize per l’opzione delle virgolette doppie; confronta la gestione di # con il comportamento di escaping della shell descritto nell’issue. Controlla i test esistenti del generatore cURL per gli snippet tra virgolette e aggiungi test per un URL, un valore di header o un corpo JSON contenente #. Il lavoro è completato quando lo snippet generato conserva # e il corpo della richiesta rimane JSON valido.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
Affected codegen: curl, with the quoteType option set to double.
sanitize in codegens/curl/lib/util.js replaces # with \# when the quote type is double. Inside double quotes, neither bash, zsh nor cmd.exe treats \# as an escape, so the backslash is kept and sent to the server. Any URL, header value or body containing # is changed. A JSON body such as {"color": "#fff"} becomes {"color": "\#fff"}, which is not valid JSON.
To Reproduce
var sdk = require('postman-collection'),
curl = require('./codegens/curl');
var request = new sdk.Request({
method: 'POST',
url: 'https://postman-echo.com/post',
header: [
{ key: 'Content-Type', value: 'application/json' },
{ key: 'X-Color', value: '#fff' }
],
body: { mode: 'raw', raw: '{"color": "#fff"}' }
});
curl.convert(request, { quoteType: 'double' }, function (err, snippet) {
console.log(snippet);
});
Output:
curl --location "https://postman-echo.com/post" \
--header "Content-Type: application/json" \
--header "X-Color: \#fff" \
--data "{\"color\": \"\#fff\"}"
Running it in bash, postman-echo reports "x-color": "\#fff", "data": "{\"color\": \"\#fff\"}" and "json": null, because the body no longer parses.
Expected code snippet and corresponding request
curl --location "https://postman-echo.com/post" \
--header "Content-Type: application/json" \
--header "X-Color: #fff" \
--data "{\"color\": \"#fff\"}"
With this snippet the server receives #fff and the JSON body parses.
Additional context
The # replacement was added in #734 together with the escaping of `, $ and !. Inside double quotes, a POSIX shell only removes a backslash that comes before $, `, ", \ or a newline. # only starts a comment at the beginning of an unquoted word, so it needs no escaping inside quotes.
Version of postman-code-generators: develop at 7298195 (v2.1.1)
- Lingua principale
- JavaScript
- Stelle
- 1k
- Fork
- 381
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di postmanlabs/postman-code-generators
-
postinstall runs 35 nested installs when used as a dependency, which consumers don't needForse già presa @aelmanaa l’ha presa 2 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
curl codegen: file-type FormParam contentType ignored — ';type=' not emitted for multipart file partsForse già presa @CrypticCortex l’ha presa 177 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
postmanlabs/postman-code-generators#815 · 2 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
Tutte le issue di postmanlabs/postman-code-generators
Issue simili
-
enhancement version-minor
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
cuttle-cards/cuttle#1467 ·
I maintainer di solito rispondono entro 1 giorno
-
2026-11 bug good first issue gsoc-2027 project: mockuper
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
alphaonelabs/website#1147 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
aikido high security
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
dequelabs/axe-core-npm#1503 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 3-5 giorni Idoneità per principianti 62/100
career-ops-hq/career-ops#6399 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Broken links (2026-11)Apertalink-check
Difficoltà 2/5 1-3 ore Idoneità per principianti 60/100
joshuabmoore/somnodex#6 ·