Il y a quelques petites choses qui pourraient causer le problème.
- Vous voulez utiliser un objet
File
réel avec RestClient
, utilisez donc File.open
; il retourne un objet fichier.
- Vous incluez l'objet image deux fois dans votre requête; le contenu réel n'est pas clair à partir de votre question. Vous mélangez des éléments de charge utile avec des en-têtes, par exemple. Sur la base de la signature de
RestClient.post
, qui prend des arguments url, payload, headers={}
, votre demande doit prendre l'une des deux formes suivantes:
est le point final attend les paramètres nommés? Si oui, alors utilisez ce qui suit:
Technique 1: la charge utile comprend un champ ou d'un paramètre nommé « upload » et la valeur est définie sur l'objet image
result = RestClient.post(
'http://www.someurl.com/objects',
{ 'upload' => image },
'Accept' => 'application/json',
'Authorization' => 'token',
'Content-Type' => 'image/jpeg',
)
est le point final attend un simple fichier télécharger? Dans ce cas utilisez:
Technique 2: l'objet de fichier d'image est envoyé comme la seule charge utile
result = RestClient.post(
'http://www.someurl.com/objects',
image,
'Accept' => 'application/json',
'Authorization' => 'token',
'Content-Type' => 'image/jpeg',
)
Notez que je ne comprend pas l'en-tête 'Content-Length'
; cela n'est généralement pas requis lors de l'utilisation de RestClient
, car il est inséré pour vous lors du traitement des fichiers.
Il existe une autre façon d'envoyer des charges utiles avec RestClient
expliqué here. Assurez-vous de lire également le official docs on github.
Je suis aussi nouveau à RestClient
donc si je me trompe dans ce cas ne soyez pas trop dur; Je corrigerai mes idées fausses immédiatement. J'espère que cela t'aides!
Dans l'exemple, j'ai défini les données de publication sur l'image, mais j'ai également essayé de laisser ce blanc. – Adrian
Essayez 'image = Fichier.open ('uploads/images/gullfoss.jpg', 'rb') {| io | io.read} ' –
http://stackoverflow.com/questions/2863164/how-do-i-use-rest-client-for-ruby-to-post-an-image –