我遇到一个问题,当我发送一个小字节数组
byte[] s = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
然后它将成功接收并插入数据库但是当涉及转换为bytes []的图像的字节数组时,我将显示异常
“请求失败,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;
}
}
答案 0 :(得分:0)
我自己遇到了这个问题,似乎原因是非base64编码的图像可能包含终止发布请求等的字节,因此请求将无效。
另一个原因可能是您的webprovider。我尝试过的一个免费的徒劳无效,但是当我搬到另一个主持人而没有改变一行时,一切都运转良好。
我建议你使用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
}
答案 1 :(得分:-1)
尝试使用以下方式转换图片:
public byte[] FileToByteArray(string fileName)
{
byte[] buff = null;
if (fileName != null && fileName != "" && File.Exists(fileName))
{
buff = File.ReadAllBytes(fileName);
}
return buff;
}
在我的数据库中,图片的列是type image.I有同样的问题,我用它修复了它。