C# ASP.NET Web API-使用HttpClient发布Base64字符串时获取404

C# ASP.NET Web API-使用HttpClient发布Base64字符串时获取404,c#,asp.net,rest,asp.net-web-api,web,C#,Asp.net,Rest,Asp.net Web Api,Web,不知道我做错了什么 尝试发布Base64编码的字节数组,并获取404 问题是,当我用一个正常值(“test”)尝试它时,它是有效的 API: 客户: public static bool UploadDocument(string base64Image) { // ... using (var handler = new HttpClientHandler() { UseDefaultCredentials = true}) using (var client = new Http

不知道我做错了什么

尝试发布Base64编码的字节数组,并获取404

问题是,当我用一个正常值(“test”)尝试它时,它是有效的

API:

客户:

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。
问题仍然存在。

我试图发送的数据大小大于默认最大值

我得到的404实际上是404.13,这是“内容长度太大”


您可以找到更多关于这方面的信息。

您可能希望
postasjsonansnc
将图像序列化为base 64。这肯定会发生吗?如果您手动将图像对象编码为base 64,然后尝试将其发布,会发生什么情况?@richzilla我已经自己对其进行了编码。仔细检查,是的……您是否尝试添加内容传输编码头。示例httpclient.DefaultRequestHeaders.Transferncode.Add(新的TransferCodingHeaderValue(“BASE64”);是不是就是那个特殊的base 64字符串引起了问题?你能用base64编码“test”这个词,看看它能不能通过?
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)
      // ...
  }
}