Bonjour,
est-il possible de passer un fichier et un json dans le body en c# ?
si oui comment ?
j'ai essayé ca :
voici un extrait de mon controller
J'ai plusieurs problèmes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 public class CodifBOMModelController : ApiController { private IModelService _modelServiceInstance = null; public CodifBOMModelController() : this(new ModelService()) { } public CodifBOMModelController(IModelService service) { _modelServiceInstance = service; } [HttpPost] [Route("api/CodifBOM/Model/UtiliserModel")] public async Task<IHttpActionResult> GetFichierTransformerAsync([FromBody] ModelViewModel model) { try { HttpRequestMessage request = this.Request; if (!request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.UnsupportedMediaType)); } //a tester var rawMessage = await request.Content.ReadAsStringAsync(); request.Content.LoadIntoBufferAsync().Wait(); var filesProvider = await request.Content.ReadAsMultipartAsync(); var fileContents = filesProvider.Contents.FirstOrDefault(); if (fileContents == null) { return this.BadRequest("Fichier Manquant"); } string cheminFichierTemp = Path.GetTempFileName(); FileStream fstream = new FileStream(cheminFichierTemp, FileMode.Create); Stream content = await fileContents.ReadAsStreamAsync(); ViewModelBase<ModelViewModel> result = new ViewModelBase<ModelViewModel>(); return this.Ok(_modelServiceInstance.CreeFichierAPartirDuModel(model, content)); } catch (Exception e) { throw new JSONException("GET_CORRESPONDANCE_MODEL", "Erreur lors de la récupération des Models", e); } } } }
1- je ne sais pas si cela est possible
2- je ne sais pas comment tester avec postman pour envoyer un fichier et des données
...
Précédemment je passais un json dans l'URL mais il semble qu'il y ait une limite de caractères en utilisant cette méthode (limite que j'ai dépassé. (~2200))
Cdt
Partager