2016-11-02 4 views
0

Je travaille avec un mec iOS. Il veut télécharger des images via WebAPI ASP.NET. Je dois faire un appel qui peut recevoir ces images.
Il a dit qu'il utilise AFNetworking pour envoyer des données par AFMultipartFormData. Ma question est la suivante: comment puis-je recevoir ceci à ma fin? Dois-je prendre les données au format JSON? Ou quelles mesures doivent être prises à cette fin? Je veux connaître l'ensemble du processus car c'est la première fois que je travaille avec MultipartFormData.

MISE À JOUR
Sur la base de la réponse que j'utilisé ceci:Comment recevoir MultipartFormData sur ASP.NET C#

[HttpPut] 
     public IHttpActionResult GetPatientFilesAction(int id, Model.Patients.PatientFiles patientFile) 
     { 
      Model.Patients.PatientFiles pFile=new Model.Patients.PatientFiles(); 
      try 
      { 
       HttpPostedFile xmlFile = HttpContext.Current.Request.Files[0]; 

       var fileForm = HttpContext.Current.Request.Form; 
       var fileKey = HttpContext.Current.Request.Form.Keys[0]; 
       string[] jsonformat = fileForm.GetValues(fileKey); 
       pFile = Newtonsoft.Json.JsonConvert.DeserializeObject<Model.Patients.PatientFiles>(jsonformat[0]); 
      } 
      catch (Exception ex) 
      { 

       pFile.ErrorMessage = ex.ToString(); 
      } 
      return Ok(pFile); 
     } 

Mais le gars iOS a:

Échec de la demande: type de support non pris en charge (415)

+0

Etes-vous en train d'écrire un contrôleur Web API de réception? ou appelez-vous leur point de terminaison Web Api existant? – uk2k05

+0

C'est comme ça ... Tout d'abord, les images seront téléchargées ... après que tous sont téléchargés le reste de l'objet JSON viendra de l'application IOS. –

+0

Vous pouvez envoyer des données image et json dans la même requête HTTP. –

Répondre

1

intérieur de l'API Web contrôleur vous pouvez accéder au fichier image en utilisant le code ci-dessous: -

HttpPostedFile xmlFile = HttpContext.Current.Request.Files[0]; 

Si vous avez plusieurs fichiers affichés, remplacer les fichiers [0] avec un nombre respectif 1 ou 2, etc.

Et vous pouvez accéder au JSON en utilisant le code:

var fileForm = HttpContext.Current.Request.Form; 
var fileKey = HttpContext.Current.Request.Form.Keys[0]; 
string[] jsonformat = fileForm.GetValues(fileKey); 
var yourModel = JsonConvert.DeserializeObject<YourClassType>(jsonformat[0]); 

Si vous avez plus d'une chaîne json publiée, remplacez jsonformat [0] par le compte respectif 1 ou 2, etc.

+0

bro merci pour votre réponse. Mais j'ai une question car je suis sur un niveau très basique de webAPI. Effacez-moi si je me trompe ... Voici ce que je vais dire au mec iOS: "C'est l'URL: URL_OF_THIS_CALL une requête POST et vous pouvez mettre JSON dans vos paramètres et envoyer ce' AFMultipartFormData'. Je ne sais pas si cela a un sens, mais corrigez-moi si je me trompe –

+0

Vous indiquerez au développeur iOS que votre API acceptera les requêtes avec Content-Type: multipart/form-data et d'envoyer l'image en tant que charge de données de formulaire en plusieurs parties.Ils devraient être en mesure d'atteindre ce qui est mentionné dans la réponse –

+0

il reçoit Get failed: type de support non pris en charge (415). –