2016-11-02 4 views
0

私はiOSの人と一緒に働いています。彼はWebAPI ASP.NETを通して画像をアップロードしたいと思っています。私はそれらのイメージを受け取ることができる電話をしなければならない。
彼はAFNetworkingを使ってAFMultipartFormDataでデータを送信していると言いました。私の質問は、私が私の最後にこれをどうやって受け取ることができるかということです。 JSON形式でデータを取得する必要がありますか?あるいは、この目的のためにどのような措置を講ずる必要がありますか? MultipartFormDataで初めて作業するので、全体のプロセスを知りたいです。ASP.NETでMultipartFormDataを受け取る方法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); 
     } 

しかし、iOSの男が得た:

要求が失敗しました:サポートされていないメディアタイプ(415)

+0

受信Web APIコントローラを作成していますか、または既存のWeb APIエンドポイントを呼びますか? – uk2k05

+0

それはそうです...最初に画像がアップロードされます...それらのすべてがアップロードされた後、JSONオブジェクトの残りはIOSアプリケーションから来るでしょう。 –

+0

イメージとjsonの両方のデータを同じHTTPリクエストで送信できます。 –

答えて

1

をウェブAPI内部で私はこれを使用する回答に基づいて

UPDATE
コントローラでは、以下のコードを使用して画像ファイルにアクセスできます。 -

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

あなたが掲示つ以上のファイルがある場合は、ファイルを置き換える[0]それぞれのカウント数1または2などと

そして、あなたは、コードを使用してJSONにアクセスすることができます。

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]); 

あなたがしている場合複数のjson文字列がポストされている場合は、jsonformat [0]をそれぞれ1または2と置き換えてください。

+0

あなたの答えをありがとう。しかし、私はWebAPIの非常に基本的なレベルにあるので、私は質問があります。もし私が間違っていたら私をクリアしてください...これはiOSの人に言っていることです "これはURLです:URL_OF_THIS_CALL POSTリクエストで、あなたのパラメータにJSONを入れて、' AFMultipartFormData'を送ることができます。私が間違っていればそれを修正してください –

+0

あなたのAPIがContent-Typeでのリクエストを受け入れると言う仕様をiOS開発者に提供します:画像をマルチパート形式のデータペイロードとして送信することができます。 –

+0

リクエストが失敗しました:サポートされていないメディアタイプ(415)。更新された質問も参照してください。 –

関連する問題