0

我面临一个问题,当我发送一个小尺寸字节数组时

byte[] s = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

然后它将成功接收并插入数据库,但是当涉及转换为字节 [] 的图像字节数组时,我将显示异常

“请求失败,HTTP 状态 404:未找到。”

它没有显示“超过最大限制”或类似的东西。我应该怎么办?这是屏幕截图

在此处输入图像描述

它发送被注释的字节数组,但参数中的数组是转换为字节数组的位图。

- 编辑

这是Web服务中接收端的代码

 [WebMethod]
 public bool TakeScreenShotResponseBack(string ip, byte[] screenShot)
    {
        dbOpts = new DatabaseOperation();

        if (dbOpts.InsertBitmapResponse(ip, screenShot))
            return true;
        else
            return false;
    }

这是发送方代码

    public bool ScreenShotResponse(string ip, byte[] ss)
    {
        response = new MyService.MasterWebService();
        try
        {
            //byte[] s = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            if (response.TakeScreenShotResponseBack(ip, ss))
                return true;
            else
                return false;
        }
        catch
        {
            return false;
        }
    }
4

2 回答 2

0

我自己也遇到了这个问题,原因似乎是非 base64 编码的图像可能包含终止发布请求等的字节,因此请求将无效。

另一个原因可能是您的网络提供商。我试过的一个freehoster没有用,但是当我搬到另一个hoster而不改变一行时,一切都很完美。

我推荐你使用 RestSharp:

RestRequest request = new RestRequest("url", Method.POST);
request.AddParameter("image",  Convert.ToBase64String(imagestream.ToArray());
RestClient client = new RestClient();
client.ExecuteAsync(request, (response) =>
{
    //Do something with the response
}
于 2014-04-16T17:27:40.063 回答
-1

尝试用这个转换你的图像:

  public byte[] FileToByteArray(string fileName)
  {

       byte[] buff = null;

       if (fileName != null && fileName != "" && File.Exists(fileName))

       {

          buff = File.ReadAllBytes(fileName);

       }
        return buff;
    }

在我的数据库中,图片的列是图像类型。我遇到了同样的问题,我用这个修复了它。

于 2014-04-16T17:45:09.063 回答