Six Stars

How to process Content-Type: application/x-www-form-urlencoded

Hi, all!

I got a service, which sends HTTP POST  messages with Content-Type: application/x-www-form-urlencoded such as:

Address: http://myserver:8090/services/My_Service
Encoding: UTF-8
Http-Method: POST
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Headers: {connection=[keep-alive], Content-Length=[875], content-type=[application/x-www-form-urlencoded; charset=UTF-8], Host=[ym.ascgroup.ru:8090], Reverse-Via=[MWSTMG2], User-Agent=[Yandex.Money], X-Unilabel=[2093ba99-0009-5000-8000-0000205ad93c]}
Payload: orderSumAmount=10.00&cdd_exp_date=0118&shopArticleId=418496&paymentPayerCode=4100322062290&cdd_rrn=400650081402&external_id=deposit&paymentType=AC&requestDatetime=2017-04-27T12%3A42%3A32.314%2B03%3A00&depositNumber=oDqbu4k4JTkK0siDo8C4pI2l0mMZ.001f.201704&nst_eplPayment=true&cdd_response_code=00&cps_user_country_code=PL&orderCreatedDatetime=2017-04-27T12%3A42%3A32.235%2B03%3A00&sk=y801b97a6b7756752f0682deb659244d1&action=checkOrder&shopId=124531&scid=549915&shopSumBankPaycash=1003&shopSumCurrencyPaycash=10643&rebillingOn=false&orderSumBankPaycash=1003&cps_region_id=213&orderSumCurrencyPaycash=10643&merchant_order_id=70%2F12345678_270417113006_00000_124531&unilabel=2093ba99-0009-5000-8000-0000205ad93c&cdd_pan_mask=444444%7C4448&customerNumber=70%2F12345678&yandexPaymentId=2570084588069&invoiceId=2000001148959&shopSumAmount=9.71&md5=8E5D0A19A3515832030FAFCD72371DF5

 Which components i should use to process this messages and send response?

tESBProviderRequest and tRESTRequest can't process...

Regards,

 

 

Tags (3)
1 ACCEPTED SOLUTION

Accepted Solutions
Six Stars

Re: How to process Content-Type: application/x-www-form-urlencoded

Hi, Mirko!

Thank you for response. I got another solution: route.

cHttp (as server) can perfectly handle incoming data and transfer it to cTalendJob

 

3 REPLIES
Six Stars

Re: How to process Content-Type: application/x-www-form-urlencoded

Hi,

Rest service usually expect JSON or XML payload, what you have here instead is the query string in the payload.

I think you have to parse them manually in a JavaRow component, using maybe the following class:

https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/utils/URLEn...)

and after map it in the field of the row element.

 

Regards,

Mirko

Six Stars

Re: How to process Content-Type: application/x-www-form-urlencoded

Hi, Mirko!

Thank you for response. I got another solution: route.

cHttp (as server) can perfectly handle incoming data and transfer it to cTalendJob

 

Six Stars

Re: How to process Content-Type: application/x-www-form-urlencoded

Hi,

nice solution, I was not thinking on route and Http component as server. I usually use it as client.

Thanks for sharing.

 

Regards,

Mirko