I''m trying to post multipart content (a file and some strings) to a Sinatra server on localhost using a java client. It seems the server doesn''t like the POST message. The stack trace is: ************************************************************************************ ERROR NoMethodError: undefined method `rewind'' for "hi":String D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/ utils.rb:581:in`block in parse_multipart'' D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/ utils.rb:499:in`loop'' D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/ utils.rb:499:in`parse_multipart'' D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/ request.rb:270:in `parse_multipart'' D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/ request.rb:148:in `POST'' D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/ methodoverride.rb:15:in `call'' D:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.2.6/lib/sinatra/ base.rb:1272:in `block in call'' D:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.2.6/lib/sinatra/ base.rb:1303:in `synchronize'' D:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.2.6/lib/sinatra/ base.rb:1272:in `call'' D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/ content_length.rb:13:in `call'' D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/ handler/webrick.rb:52:in `service'' D:/Ruby192/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'' D:/Ruby192/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'' D:/Ruby192/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'' ************************************************************************************ My server prints out the params in the post message. Here''s what they are for my java client: ************************************************************************************ Content-Disposition: form-data; name="file"; filename="fff.jpg" Content-Type: image/jpeg Content-Transfer-Encoding: binary #<File:0xedbc10> Content-Disposition: form-data; name="jjj" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit hi ************************************************************************************ The java code I''m using is: ************************************************************************************ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://localhost:4567/upload"); File file = new File("D:/My Documents/My Desktop/fff.jpg"); MultipartEntity mpEntity = new MultipartEntity(); ContentBody cbFile = new FileBody(file, "image/jpeg"); mpEntity.addPart("file", cbFile); ContentBody stringBody = new StringBody("hi", Charset.forName("UTF8")); mpEntity.addPart("jjj", stringBody); httppost.setEntity(mpEntity); HttpResponse response = httpclient.execute(httppost); ************************************************************************************ So it seems Rack doesn''t like dealing with content type when the content type is a string. When I set the content_type variable inside rack/utils.rb to nil when the param is not a file everything works fine. Is this intentional or should it be submitted as a bug? See also http://blogs.oracle.com/mandy/entry/rack_and_content_type_for. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.