-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
url encoded within restapi url component #226
Comments
Line 340 in e1b9828
req.URL.Path as the path to match against where req.URL is a url.URL . According to the documentation of url.URL :
If you need this behaviour, try replacing that line with the following and seeing if that works: path := req.URL.EscapedPath() |
@uriklagnes You might find this interesting if you are using or can use a gorilla/mux Router. There is this setting available for it:
Judging from the description it seems to solve your problem. I'm soon gonna try it out. |
I can confirm that the gorilla/mux router solves this problem. It would be nice if httprouter supports this too. |
I opened a PR to implement an option to enable this behavior |
Hi,
I'm trying to create an API with scheme
POST /some/base/url/{{ some other url encoded here }}
Where the last part of the url is extracted by router, but it is itself an url that has been encoded by front end code.
So {{ some other url encoded here }} will be something like http://www.google.ca
(But the front end will encode this as http%3A%2F%2Fwww.google.ca first)
The problem is, when front end does the POST call, it gets a 404.
My hunch is that the router must be "seeing" the URL as the real URL and is trying to match on:
/some/base/url/http://www.google.ca <-- it is seeing the two // within url.
Is there a way for me to actually confirm this? Because the 404 is coming from the router not my app.
Is there a workaround?
Thanks
The text was updated successfully, but these errors were encountered: