2017-04-19 21 views
1

ここで間違っていることがわかりません。ASP.NET Web API - HttpClientを使用してBase64文字列を投稿するときに404を取得する

Base64でエンコードされたバイト配列を投稿しようとすると、との事は、私は正常値(「テスト」)でそれをしようとすると、それが動作する、である404

を得ます。

API:

[HttpPost] 
public IHttpActionResult Post(dynamic data) 
{ 
    // ... 
    return Ok(); 
} 

クライアント:

public static bool UploadDocument(string base64Image) 
{ 
    // ... 
    using (var handler = new HttpClientHandler() { UseDefaultCredentials = true}) 
    using (var client = new HttpClient(handler)) 
    { 
    var data = new { Image = base64Image }; // Image = 123 (or any random value) Works. 
    var res = client.PostAsJsonAsync(@"(url)", data).Result; 
    if(res.IsSuccessStatusCode) 
     // ... 
    } 
} 

も代わりにWebRequestクラスを使用してみました、カップルの他のバリエーションを試してみました。 問題は残ります。

+0

おそらく、あなたは 'PostAsJsonAsnc'がベース64に画像をシリアル化することを期待しています。これは間違いなく起こっていますか?イメージオブジェクトを手動でベース64としてエンコードしてポストしようとするとどうなりますか? – richzilla

+1

@richzilla私はすでにそれを自分でエンコードしています。 – omm118

+0

詳しい点検では、そうです... – richzilla

答えて

0

送信しようとしていたデータのサイズがデフォルトの最大サイズよりも大きかった。

私が取得した404は実際には404.13で、これは「Content Length Too Large」です。

この詳細については、hereをご覧ください。

関連する問題