【问题标题】:How to send an image using a POST request in iOS如何在 iOS 中使用 POST 请求发送图像
【发布时间】:2012-06-14 20:39:38
【问题描述】:

我需要使用 post 请求将图像发送到我的服务器。我已经为它编写了所需的 PHP 代码。但是我必须如何从我的设备发送它?我见过 ASIHTTPRequest 框架,但它已经过时了,而且 AFNetworking 使事情变得复杂。如果可以的话,我想通过 GET 请求发送图像,但我就是不知道怎么做。

【问题讨论】:

标签: objective-c post httprequest


【解决方案1】:

我创建了一个子类,它允许您创建简单的异步 POST 请求,可以在这里找到:https://github.com/MaxKDevelopment/MKNetwork

要使用它上传图片,您只需将图片数据作为参数添加到请求中即可:

[MKNetwork sendAsynchronousRequest:[NSURL URLWithString:@"url to upload to"] params:[NSDictionary dictionaryWithObject:UIImagePNGRepresentation(imagedata) forKey:@"image"] decodeResponse:YES callback:^(id response, NSError *error) {

    [someObject doSomethingWithResponse:response];

}];

或者,您可以查看 ASIHTTPRequest (ASIFormDataRequest):http://allseeing-i.com/ASIHTTPRequest/

然后使用设置为 UIImage 的 POST 值初始化 ASIFormDataRequest 变量。

NSURL *url = [NSURL URLWithString: @"url to upload to];
ASIFormDataRequest *request = [ASIHTTPRequest requestWithURL:url];
[request addPostValue:UIImagePNGRepresentation(imageToUpload) forKey:@"image"];
[request setCompletionBlock:^{NSLog(@"completed");}];
[request setFailedBlock:^{NSLog(@"failed");}];
[request startAsynchronous];

【讨论】:

  • 据我所知,ASIHTTP 不再受支持且已过时?
  • -1 用于建议 ASI,它已被弃用,并且有更好的替代方案,例如 RESTKit 或 AFNetworking。
  • 我也提供了 ASIHTTPRequest 的替代方案。请你给我一个链接到概述 ASI 弃用的文章的链接,因为我以前没有听说过。
  • ASIHTTP 仍然被许多应用程序使用。没有理由仅仅因为它使用较旧的技术而对答案投反对票。这不像你通过几十年前的技术浏览这个网站,哦等等……
  • 是否有可能避免所有这些 POST 请求头痛?是否可以简化它,例如使用 GET 。因为它真的不在乎它是对是错,所以我时间真的很短,我只是在做一个演示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 1970-01-01
  • 1970-01-01
  • 2013-02-27
  • 2018-12-14
  • 2021-01-13
  • 2020-05-12
相关资源
最近更新 更多