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

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,

 

 


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

 


All 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

2019 GARNER MAGIC QUADRANT FOR DATA INTEGRATION TOOL

Talend named a Leader.

Get your copy

OPEN STUDIO FOR DATA INTEGRATION

Kickstart your first data integration and ETL projects.

Download now

What’s New for Talend Summer ’19

Watch the recorded webinar!

Watch Now

Talend API Designer – Technical Overview

Take a look at this technical overview video of Talend API Designer

Watch Now

Getting Started with APIs

Find out how to get started with APIs

Read