2017-02-08 21 views
1

.Net Coreアプリケーションでapiプロジェクトを作成しました。また、パラメータとしてHttpRequestMessageを受け入れるメソッドを作成しました。今私はPostmanを使って私のapiメソッドを呼び出すことを試みていますが、bodyパラメータとしてファイルをインクルードしていますが、私のAPIメソッドは呼び出していません。ローカルホスト:64226 のContent-Type:ここ郵便配達員を使用してzipファイルを受け入れる

コード

[Route("api/[controller]")] 
public class ValuesController : Controller 
{ 
    [HttpPost] 
    public HttpResponseMessage PostFiles() 
    { 
     HttpResponseMessage result = null; 
     var httpRequest = HttpContext.Request; 

     return result; 
    }} 

ここでは、Postman要求データ

POST /api/values/PostFiles HTTP/1.1 

ホストであるマルチパート/フォームデータ。境界= ---- WebKitFormBoundary7MA4YWxkTrZu0gW のCache-Control:キャッシュなし ポストマン・トークン:6adcc652-a4ab-3714-cc5e-770bd214ac7a

------ WebKitFormBoundary7MA4YWxkTrZu0gW コンテンツディスポジション:フォームデータ;名前= "データ";ファイル名= "" のContent-Type:

------ WebKitFormBoundary7MA4YWxkTrZu0gW--

ここでは、郵便配達を使用して、私のAPI呼び出しのスクリーンショットです。

enter image description here

ファイルの要求本体パラメータとして

enter image description here

私が行方不明です何がありますか?

郵便配達員を使用してパラメータとしてファイルを受け入れることで、私のWeb APIを呼び出すことができますか?

答えて

3

あなたのルートに問題があると思います。試してみる:

public class ValuesController : Controller 
{ 
    [Route("api/values/postfiles")] 
    [HttpPost] 
    public HttpResponseMessage PostFiles() 
    { 
     HttpResponseMessage result = null; 
     var files = Request.Form.Files; 
     return result; 
    } 
} 

次に、http://localhost:yourport/api/values/postfilesでAPIにアクセスしてみてください。

"yourport"をポート番号に置き換えてください。

ファイルが利用可能であれば、ファイルを "fileStream"で取得します。

+0

[RoutePrefix( "api")属性がディレクティブまたはアセンブリをしていません。どうすれば.NET Core APIプロジェクトで取得できますか? また、参照するネームスペースのための 'HttpContext.Current.Request.Files'? ありがとう – Herin

+0

申し訳ありませんが、実際にはRoutePrefixAttributeがコアにありません。したがって、コントローラに[Route]属性を適用すると、ルートプレフィックスとして機能します。私は答えを編集しました。 –

+0

また、HttpContextにはMicrosoft.AspNetCore.Httpを使用します。 –

0

ASP.NET Coreアプリケーションでは、IHostingEnvironmentを使用します。次に、ContentRootPathとWebRootPathを呼び出すことができます

関連する問題