I have an endpoint in my API like below:
from flask import Flask
app = Flask(__name__)
@app.route('/price/<path:url>/')
def Ex(url):
return {'urlwas':url}
app.run()
The problem is that when I call the API with this http://127.0.0.1:5000/price/https://puresourceindia.in/store/index.php/?route=product/product&product_id=479
it should return this {"urlwas":"https://puresourceindia.in/store/index.php/?route=product/product&product_id=479"}
but it returns {"urlwas":"https://puresourceindia.in/store/index.php"}
I am unable to understand what is happening here, and how to tackle this situation?
You have to URL encode the parameter, the call should become:
http://127.0.0.1:5000/price/https%3A%2F%2Fpuresourceindia.in%2Fstore%2Findex.php%2F%3Froute%3Dproduct%2Fproduct%26product_id%3D479
and the result then becomes the one expected:
{"urlwas":"https://puresourceindia.in/store/index.php/?route=product/product&product_id=479"}
See here how to URL encode your string: https://www.urlencoder.org/