Hello,

I have a CXF consumer which is able to send @POST http request and via this
upload a file. This is working but before I send the request I need to get
IP of server where to upload it to, credentials and name of the file. I was
trying to add @PathParam and @QueryParam but with theses annotations it did
not work. My question is if it is possible to retrieve @GET data from URL
and then send @POST multipart request and how to do that? For now it works
with hard-coded data and I really have no idea how to pass variables
mentioned above.

For now, my consumer looks like this:

        @POST
        @Path("/upload")
        @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
        @Produces(MediaType.APPLICATION_JSON)
        public Response uploadFile(
                @Multipart(value = "session_id") String sessionId,
                @Multipart(value = "action") String action
        ){
                return null;
        }

and code sending the request looks like this:

                String pathToUploader =
"https://myserver.com/service/upload.php";;              
                String session_id = "0kk1sobmbuforgjamj10470a23";
                String action = "A";
                File myfile = new File("/path/to/my/file/document_folder1.txt");

                HttpClient client = new DefaultHttpClient();
                
client.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION,
HttpVersion.HTTP_1_1);
                HttpPost post = new HttpPost(pathToUploader);
                
                MultipartEntity entity = new MultipartEntity(
HttpMultipartMode.BROWSER_COMPATIBLE );
                
                        // For File parameters
                        entity.addPart("myfile", new FileBody((( File ) myfile),
"application/octet-stream" ));
                         
                        // For usual String parameters
                        entity.addPart("session_id", new StringBody(session_id, 
"text/plain",
Charset.forName( "UTF-8" )));
                        entity.addPart("action", new StringBody(action, 
"text/plain",
Charset.forName( "UTF-8" )));
                        
                        post.setEntity( entity );

Thanks

-Roman



--
View this message in context: 
http://cxf.547215.n5.nabble.com/MultipartBody-with-PathParam-and-QueryParam-tp5724291.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to