-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable env variable placeholder replacement when including file in request #28
Comments
yeah, that is a cool feature, I already implemented it:-)
https://github.com/AnWeber/httpyac/blob/main/examples/README.md#request-body |
Cool, thanks, I guess I didn't read the docs well enough :-) Unfortunately, this now breaks our cross-IDE workflow - some of our team are working in Webstorm, some are working in Visual Studio Code. Webstorm will replace placeholders in files when just using Any chance that I can maybe add a custom script to the request that will, e.g. add the missing |
Possibly as background why it is implemented as a separate import. To replace the variables, the whole file must be loaded as text. But for this I have to know the encoding of the file (default UTF-8). Additionally I can save resources, because I only stream the file and don't load it completely into memory. |
I'll take a look at it and get back to you. My first idea would be a meta data |
Thanks a lot! The meta data approach sounds great, this will keep compatibility with both IDEs and one must explicitly opt-in to use more resources :-) |
It is now possible to force variable replacement using Meta Data.
I also have it built in, using .httpyac.json, to always force the replacement. This will then also be possible in the vscode extension in the settings |
I noticed something else today, because I still had the setting from my test activated. How does Intellij behave when a PDF is imported? In this case, the replacement of the variables is incorrect and also changes the request body. |
Do you have an example PDF for this? I tried it out with these two files: I then sent this request: // Environment
{
"Foo": {
"foo": "bar"
}
} POST https://httpbin.org/anything
accept: application/json
< ./Foo.pdf
This was the response: {
"args": {},
"data": "data:application/octet-stream;base64,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ZAoKZW5kc3RyZWFtCmVuZG9iago2IDAgb2JqCjw8IC9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMAovQmFzZUZvbnQgL1JvYm90by1SZWd1bGFyCi9FbmNvZGluZyAvSWRlbnRpdHktSAovRGVzY2VuZGFudEZvbnRzIFsxOCAwIFJdCi9Ub1VuaWNvZGUgMTkgMCBSPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL1BhZ2VzCi9LaWRzIApbCjUgMCBSCl0KL0NvdW50IDEKL1Byb2NTZXQgWy9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDXQo+PgplbmRvYmoKeHJlZgowIDIxCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDAzNzYwIDAwMDAwIG4gCjAwMDAwMDAxODcgMDAwMDAgbiAKMDAwMDAwMDI4MiAwMDAwMCBuIAowMDAwMDAwNjU1IDAwMDAwIG4gCjAwMDAwMDM2MjAgMDAwMDAgbiAKMDAwMDAwMDMxOSAwMDAwMCBuIAowMDAwMDAwMzYyIDAwMDAwIG4gCjAwMDAwMDA0OTEgMDAwMDAgbiAKMDAwMDAwMDQwMyAwMDAwMCBuIAowMDAwMDAwNTUzIDAwMDAwIG4gCjAwMDAwMDA5NjIgMDAwMDAgbiAKMDAwMDAwMTM5NSAwMDAwMCBuIAowMDAwMDAwNzc2IDAwMDAwIG4gCjAwMDAwMDA5NDIgMDAwMDAgbiAKMDAwMDAwMTQxNSAwMDAwMCBuIAowMDAwMDAxNjc5IDAwMDAwIG4gCjAwMDAwMDI5MzEgMDAwMDAgbiAKMDAwMDAwMzE2OSAwMDAwMCBuIAowMDAwMDAyOTEwIDAwMDAwIG4gCnRyYWlsZXIKPDwKL1NpemUgMjEKL0luZm8gMSAwIFIKL1Jvb3QgMTEgMCBSCj4+CnN0YXJ0eHJlZgozODU4CiUlRU9GCg==",
"files": {},
"form": {},
"headers": {
"Accept": "application/json",
"Accept-Encoding": "gzip,deflate",
"Content-Length": "4357",
"Content-Type": "*/*",
"Host": "httpbin.org",
"User-Agent": "Apache-HttpClient/4.5.13 (Java/11.0.10)",
"X-Amzn-Trace-Id": "Root=1-60a4bb3a-235c5e0f75c06a8b10275ff9"
},
"json": null,
"method": "POST",
"origin": "...",
"url": "https://httpbin.org/anything"
} I built the response PDF file out of the response data and recieved this: Its the exact same PDF file and no replacement has happened. Is this what you had in mind as a test? If not, I can test another case :-) |
Thank you. That helped me. The PDF is transferred as application/octet-stream, but in my tool as text. So Intellij has here a special treatment for PDF.
I think I need to improve my code:-) |
I updated environmentConfig to allow configuration of a white list of extensions which automatically inject variables. I think this simplifies your use case |
It would be great if env variable placeholders would also be replaced in included files.
Currently, when sending the request, it would send the exact payload and not replace the
{{foo}}
placeholder.The text was updated successfully, but these errors were encountered: