2017-08-14 3 views
2

Je veux tester la méthode suivante (générée par fanfaronnades) avec Fiddler:Remplissage des paramètres avec l'attribut [FromForm] avec Fiddler

[HttpPost] 
[Route("/webservice/images")] 
[SwaggerOperation("UploadImage")] 
[SwaggerResponse(200, type: typeof(ResourceIdEntry))] 
public virtual IActionResult UploadImage([FromForm] Stream image) 
{ 
    return new ObjectResult(); 
} 

configurer Fiddler pour envoyer un POST à ​​http://localhost:50352/webservice/images avec l'en-tête

Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468 
User-Agent: Fiddler 
Host: localhost:50352 
Content-Length: 12931 

et le corps

---------------------------acebdf13572468 
Content-Disposition: form-data; name="image"; filename="Test.tif" 
Content-Type: image/tiff 

<@INCLUDE *C:\...\Test.tif*@> 
---------------------------acebdf13572468-- 

mais uploadImage est même pas appelé et je reçois juste un 500 retournés. Si je supprime le paramètre image, la méthode est au moins appelée. Comment dois-je configurer fiddler pour que l'appel soit résolu correctement?

+0

Je faisais face à un problème similaire avec snapchat api. la cause première était la façon dont ils analysaient le corps de la requête. la solution était d'envelopper le nom et le nom de fichier avec des guillemets, comme: "name" = "image"; "filename" = "Test.tif". J'espère que cela aide – Artem

+0

@Artem, non, ne fonctionne pas pour moi. Merci d'avoir essayé. – Sebastian

Répondre

0

Commander le post suivant dans le fichier de téléchargement avec web api - https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/sending-html-form-data-part-2

Il n'y a pas construit en formatter les médias pour traiter les messages de multi-formats partiel. Cependant, ce n'est rien qui vous empêche d'écrire votre propre afin que la même logique peut être appliquée à plusieurs actions, voici un exemple d'un formateur personnalisé - https://gist.github.com/Danielku15/bfc568a19b9e58fd9e80

+0

Désolé, je ne comprends pas. Pour le premier lien: Il me fait clairement comprendre comment réécrire ma requête Fiddler et je suis déjà capable de lire les fichiers de Request.Form.Files, mais je veux les obtenir par un paramètre. Le deuxième lien utilise System.Web, est-ce transférable à asp.netcore? Aussi, il semble y avoir beaucoup de code en comparaison avec le fichier foreach dans Request.Form.Files {something}. En outre, je ne pense pas que je comprends le problème pour lequel le paramètre n'est pas défini. S'il vous plaît élaborer sur ceci. – Sebastian

+0

En ce qui concerne le deuxième lien, j'ai posté une question de suivi ici: https://stackoverflow.com/questions/46296372/why-are-the-attributes-of-this-model-initialized-to-null – Sebastian