Prevent URI encoding

ashwithds123
Participant IV

Hi @Dino-at-Google, dane knezic -

Concern: In my request query param contains the "%" char in the value but Apigee is encoding it to "%25".

My ask here is Apigee should pass "%" as is to the target endpoint without converting it to "%25".

I know by setting 'HTTPClient.urlencode.request.line=true' to false in http.properties on the message-processor level this can be resolved. [This is not a recommended solution, because it affects all the proxy services that are on-boarded on our platform].

Could you please let me know how this can be resolved in the proxy level in such a way that Apigee will pass the query param value without encoding?

0 6 1,943
6 REPLIES 6

ashwithds123
Participant IV

@Dino-at-Google, @dane knezic,

Ours is an on-premise Apigee platform setup, is there any way to create a new message processor that works only for specific proxies instead of updating the existing message processor. So, that we can go ahead and change the HTTPClient.urlencode.request.line value to false.

I don't know the answer to that. Apigee support might know.

But please elaborate. Why do you believe you need to do this?

If the backend cannot cope with url-encoded requests, the backend is in violation of the HTTP specification, and the bug is in the backend. That's where you should fix any incompatibility issue.

Again, I recommend conforming to the RFC. What is your use case for wanting to do this?

Not applicable

url encoding shouldn't be disabled in apigee. It's better you do the changes in the backend. Else you can send the parameter in header instead of in query parameter.

We are migrating from another API management system to Apigee, and we will try to avoid any backend code changes at this point to reduce friction with migration. Hence, we indeed have a real use case. Hence could you help with the below questions:

1. For Apigee Edge, how to set HTTPClient.urlencode.request.line=false' in http.properties on the message-processor level? Could

2. Is there an API proxy level setting? We might not want to apply a global setting that impacts all APIs. We want to apply the setting to a particular API proxy that is having trouble decoding the query params.

Hey!

Did you find an answer to this?