Ruby Je vais avoir du mal à traduire cette demande CURL en Ruby utilisant RESTClient:réusinage une demande de CURL RESTClient
system("curl --digest -u #{@user}:#{@pass} '#{@endpoint}/#{id}' --form [email protected]'#{path}' -X PUT")
Je continue de recevoir 400 Bad Request
erreurs. Pour autant que je sache, la requête est correctement authentifiée, mais raccroche à partir de la partie de téléchargement de fichier. Voici mes meilleures tentatives, qui me tous ces 400 erreurs:
resource = RestClient::Resource.new "#{@endpoint}/#{id}", @user, @pass
#attempt 1
resource.put :image_file => File.new(path, 'rb'), :content_type => 'image/jpg'
#attempt 2
resource.put File.read(path), :content_type => 'image/jpg'
#attempt 3
resource.put File.open(path) {|f| f.read}, :content_type => 'image/jpg'
Vous ne devez pas passer content_typa en tant qu'image/jpg car vous envoyez un formulaire codé. Je voudrais simplement essayer le mettre comme: 'resource.put: image_file => File.new (chemin, 'rb')' Voir aussi cet article de stackoverflow http://stackoverflow.com/questions/184178/ruby-how-to- post-a-file-via-http-as-multipart-form-data –
supprimer le content_type ne change rien. Je pense que cela pourrait avoir à voir avec le chemin fourni. Le chemin donné est un chemin absolu qui fonctionne bien dans CURL. Comment faire pour que File.read gère un chemin absolu? – user94154