当前位置: 首页 > 知识库问答 >
问题:

在C中使用键和图像恢复文件#

邵轶
2023-03-14

我正在尝试使用Rest服务,该服务接收带有密钥的图像。我正在Visual Studio 2017中使用RestSharp v.106.10.1。我有下面的代码,执行时返回一条带有服务器响应的消息,表示包到达时没有映像。你能帮我弄清楚我做错了什么吗?。

这是我的密码

var client = new RestClient("http://localhost:3030/api/upload-image");
    client.Timeout = -1;
    var request = new RestRequest(Method.POST);
    request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
    request.AddFile("images", "/C:/Users/Desktop/AppTestWM/ServidorFTP/450_1000.jpg");
    IRestResponse response = client.Execute(request);
    Console.WriteLine(response.Content);

邮递员寄信的方式是这样的。头contentType:application/x-www-form-urlencoded,表单数据中的主体添加了一个键“image”和图像文件。

这是标题格式

在此输入图像描述

这是身体形态

在此输入图像描述

更多信息

这是邮递员控制台好答案

邮递http://localhost:3000/imagenSoliTag/upload-形象

• ▶网络

▶请求头

用户代理:PostmanRuntime/7.24.1

接受:/

缓存控制:没有缓存

邮差代币: 44761995-f969-417d-9216-c98d2ee38b35

主机:localhost:3000

接受编码:gzip,deflate,br

连接:保持活力

内容类型:多部分/表单数据;边界=------------------------------------505415277809498326289672

内容-长度: 20233

•▶请求体

▶图像:{...}

_事件:{}

_活动地点:3

▶_可读状态:{…}

自动关闭:正确

字节:20022

关闭:正确

域:空

fd:null

标志:"r"

模式:438

路径:"C:\用户\桌面\AppTestWM\ServidorFTP\450_1000.jpg"

可读:假

▶响应头

X-Powered-By:Express

内容类型:application/json;字符集=utf-8

内容长度:71

ETag: W/"47-DTIxeI6y0HsQCMVrZcYol72rDDs"

日期: Sun,19 Apr2020 23:42:08GMT

连接:保持活力

• ▶响应体

回应:“想象一下!”

ImagePath:"450_1000.jpg"

这是邮递员控制台在没有图像的情况下进行查询时的错误答案

邮递http://localhost:3000/imagenSoliTag/upload-形象

• ▶网络

▶请求头

用户代理:PostmanRuntime/7.24.1

接受:/

缓存控制:没有缓存

邮差代币: 9903417e-e3f0-467e-a185-046a1043ba45

主机:localhost:3000

接受编码:gzip,deflate,br

连接:保持活力

内容长度:0

•请求机构

▶响应头

X-Powered-By:Express

内容类型:application/json;字符集=utf-8

内容-长度: 50

ETag:W/“32-Z/sIWz99etyVziu3PXRpXUZOG6c”

日期:太阳,2020年4月19日23:44:07 GMT

连接:保持活力

• ▶响应体

状态代码:400

信息:"Elija una Imagen!"

这是Visual Studio调试请求

在此输入图像描述

作为回应,是这样的

在此输入图像描述

共有1个答案

巩枫
2023-03-14

答案就在你的问题里。

请参阅邮递员发送的内容类型:

这是您正在使用RestSharp发布的请求(使用Fiddler 4收集)

POST /api/upload-image HTTP/1.1
Accept: application/json, text/json, text/x-json, text/javascript, application/xml, text/xml
User-Agent: RestSharp/106.0.0.0
Content-Type: application/x-www-form-urlencoded; boundary=-----------------------------28947758029299
Host: oguzozgul.com.tr
Content-Length: 19006
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

实际上,它试图使用边界发送表单,但您强制它以application/x-www-form-urlencoded

将标题内容类型设置为多部分/表单数据,或者(适用于最新版本),让RestSharp通过不强制使用特定(且不正确)的内容类型来自动设置内容类型:(设置内容类型标题的语句已删除:)

var client = new RestClient("http://localhost:3030/api/upload-image");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "multipart/form-data");
request.AddFile("images", "/C:/Users/Desktop/AppTestWM/ServidorFTP/450_1000.jpg");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
 类似资料:
  • 问题内容: 我正在开发一个简单的应用程序。它具有带有预加载图像和按钮的图像视图。按下按钮时,应在图像视图中反转图像。 它是第一次工作,但是我希望当我再次按下该按钮时,它可以将图像转换回其原始形式。但是,第二次按下按钮时,它崩溃了。 这是来自的相关代码: 基本上,成为第二次左右,我不知道为什么。我尝试通过将这些密集的行分成尽可能多的分配进行调试,但是该构造函数发生了一些神秘的事情。有任何想法吗? 问

  • 下面的代码是我尝试过的。 当我点击搜索按钮console.log时,所有这些都显示了25个未定义的项目。 所以我认为我传递的信息是错误的,它在div之外检测onCLick

  • 问题内容: 我有一个形状为“DxHxW”的三维图像。我成功地提取了图像 分为“pdxphxpw”(重叠面片)。对于每个补丁,我都会做一些 处理。我现在要从图像中生成补丁这样,新图像必须与原始图像具有相同的形状。你能帮忙吗 让我来做。 这里](https://i.stack.imgur.com/kQkfw.png) 这是我提取补丁的代码 This is the processing the patc

  • 我必须将一个在几个容器中运行的应用程序交付给一个客户。我可以用 我的目标是交付一个只有docker-compose.yml和图像(app1.tar,app2.tar...)的zip文件夹需要运行集装箱。

  • 你知道这个错误的原因是什么吗?

  • 我创建了一个使用提供小型库的活动。但是,我不能让它在活动恢复时刷新(例如,在从其他活动返回后)。每次前两张图片将是空白的,只有当我刷两张图片到旁边,他们得到刷新。我找到的答案都不起作用(特别是重写) 我是这样设置的: 在我试图修复它之后,代码有点乱...但是:删除不起作用。我已经将放在了几个必须调用的地方(如),但没有任何结果。我有点绝望了。