Re: Http Component Post Parameters
Thank you Willem. I did try this solution but still it still doesn't work. In this case it sends the parameters in the request body but they aren't POST parameters. The web service I am calling is unable to access the parameters. When I make this call with a Straight java.net.URLConnennection, it works fine but I would like to get this working with Camel. If there are other options for accomplishing this, I would love to hear. from(timer://runOnce?repeatCount=1) .onException(Exception.class).handled(true) .process(new GenericExceptionProcessor()).end() .log(Requesting a claim ID from SDS.) .setHeader(Exchange.HTTP_METHOD, constant(POST)) .setHeader(Exchange.CONTENT_TYPE, constant(application/x-www-form-urlencoded)) *.setBody(constant(serviceType=getNextIDFromDBserviceID=1dataElementID=814dataSourceID=50))* .to(https://dev-sdsservices-was8/IMSDSWebService/servlet/SDSClientRequestServlet; + ?proxyHost=VDDP03C-EDB4ED9proxyPort=httpClient.authenticationPreemptive=true + authMethod=BasicauthUsername=authPassword= + httpClient.soTimeout=5000) .to(file:{{sf.archive.dir}}?fileName=sds-response.xml) .log(Completed web service call to SDS for file ${file:name}.).end();Regards, John -- View this message in context: http://camel.465427.n5.nabble.com/Http-Component-Post-Parameters-tp5764464p5764478.html Sent from the Camel - Users mailing list archive at Nabble.com.
Re: Http Component Post Parameters
Thank you Willem. I had added the application/x-www-form-urlencoded content-type because I saw it in another thread. Maybe that wasn't a good idea. I did try your solution of setting the parameters in the body but it still doesn't send them as POST parameters. In this case it sends the parameters in the request body. The web service I am calling is unable to access the parameters. Are there other options/ideas I could try? from(timer://runOnce?repeatCount=1) .onException(Exception.class) .handled(true) .process(new GenericExceptionProcessor()) .end() .setHeader(Exchange.HTTP_METHOD, constant(POST)) .setHeader(Exchange.CONTENT_TYPE, constant(application/x-www-form-urlencoded)) .setBody(constant(serviceType=getNextIDFromDBserviceID=1dataElementID=814dataSourceID=50)) .to(https://dev-sdsservices-was8/IMSDSWebService/servlet/SDSClientRequestServlet; + ?proxyHost=VDDP03C-EDB4ED9proxyPort=httpClient.authenticationPreemptive=true + authMethod=BasicauthUsername=authPassword= + httpClient.soTimeout=5000) .to(file:{{sf.archive.dir}}?fileName=sds-response.xml) .end(); Regards, John -- View this message in context: http://camel.465427.n5.nabble.com/Http-Component-Post-Parameters-tp5764464p5764480.html Sent from the Camel - Users mailing list archive at Nabble.com.
Re: Http Component Post Parameters
Hi, When you use the content-type of application/x-www-form-urlencoded”, you are supposed to send the parameters in message body instead of using URL options. You can find more information here[1] Please put paramters into the message body by using setBody DSL setBody(serviceType=getNextIDFromDBserviceID=1dataElementID=814dataSourceID=50”) [1]http://stackoverflow.com/questions/14551194/how-are-parameters-sent-in-an-http-post-request -- Willem Jiang Red Hat, Inc. Web: http://www.redhat.com Blog: http://willemjiang.blogspot.com (English) http://jnn.iteye.com (Chinese) Twitter: willemjiang Weibo: 姜宁willem On March 20, 2015 at 6:56:38 AM, Alden, John (john.al...@libertymutual.com) wrote: Hi all, I'm having some trouble making a REST service call with POST parameters. I saw a similar post but I didn't understand the solution and I need some more direction. http://camel.465427.n5.nabble.com/Http-Component-Sending-Post-Parameters-td5740321.html#a5740409 The following is my route configuration. from(timer://runOnce?repeatCount=1) .onException(Exception.class) .handled(true) .process(new GenericExceptionProcessor()) .end() .setHeader(Exchange.HTTP_METHOD, simple(POST)) .setHeader(Exchange.CONTENT_TYPE, simple(application/x-www-form-urlencoded)) .to(https://dev-sdsservices-was8/IMSDSWebService/servlet/SDSClientRequestServlet; + ?proxyHost=VDDP03C-EDB4ED9proxyPort=httpClient.authenticationPreemptive=true + authMethod=BasicauthUsername=authPassword=) + serviceType=getNextIDFromDBserviceID=1dataElementID=814dataSourceID=50 .to(file:{{sf.archive.dir}}?fileName=sds-response.xml) .end(); The request is made using the POST method -- verified with Fiddler. However, the parameters are being sent as a query string on the URL. I am successfully calling the service, however, an error is returned because the service requires POST parameters. I would appreciate any help with POSTing the parameters (serviceType=getNextIDFromDBserviceID=1dataElementID=814dataSourceID=50) to the service.