我有问题,但我看不到我做错了什么?
我想用最简单的方法来让它工作,稍后我会让它变得更复杂,但目前只想命中 post 方法,我什至不关心里面的代码当前是否正在工作。
我唯一关心的是它会发回 OK 200 回复。
目前,我要么收到内部服务器错误 500 响应,要么收到 405 方法不允许响应,具体取决于我是否尝试发送数据或仅使用浏览器强制方法调用。
有一个 IOS 应用程序发送下面的 post 请求,我有一个测试 PHP 脚本证明这有效。现在我想将其移动到应该在 IIS 8 上执行工作的服务器。但是我目前正在努力建立连接:
POST /api/Image/Upload HTTP/1.1
Host: ServerName
Content-Type: multipart/form-data; boundary=-------------Boundary----------35042EC1-790C-4CDD-8E21-66E6B1025C2D
Connection: keep-alive
Accept: */*
filename: DefaultPrefix1.jpg
User-Agent: KameraApp/1 CFNetwork/808.3 Darwin/16.3.0
Content-Length: 5492253
Accept-Language: da-dk
Accept-Encoding: gzip, deflate
---------------Boundary----------35042EC1-790C-4CDD-8E21-66E6B1025C2D
Content-Disposition: form-data; name='image'; filename="DefaultPrefix1.jpg"
Content-Type: image/jpg
Image Data
End boundary
我如何尝试获取上面的 Multipart/form-data:
[RoutePrefix("api/Image")]
public class ImageController : ApiController
{
[HttpPost]
[Route("Upload")]
public IHttpActionResult Upload()
{
var files= HttpContext.Current.Request.Files;
var aFile = files.Get(0);
string filename = aFile.FileName;
string path = @"C:\ImageUploaderService\UploadFolder";
aFile.SaveAs(path + filename);
return Ok("Working");
}
}
Edit:
根据以下建议更改为当前方法
我的 WebApiConfig 如下所示:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);