我希望向服务器发送一个非常长的字符串(字符串长度超过 10000),然后从字符串中获取 jSON 响应。什么是该任务的最佳方法。我正在发送各种参数以及这个非常长的字符串。
问问题
1732 次
3 回答
0
If you are using the ASI-Http classes , then you can send request like this
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:[WebService getAddPhoto]]];
[request addPostValue:[[imgArray objectAtIndex:i] valueForKey:@"vComments"] forKey:@"comment"];
NSData *imageData = UIImagePNGRepresentation([UIImage imageWithContentsOfFile:[[imgArray objectAtIndex:i] valueForKey:@"vPhoto"]]);
NSString *encodedString = [imageData base64EncodingWithLineLength:[imageData length]];
[request addPostValue:encodedString forKey:@"Photo"];
[request setDelegate:self];
[request startAsynchronous]
于 2012-11-26T08:54:30.773 回答
0
将您的长字符串拆分为可以通过一个请求发送的部分。像这样创建一个json
{
"index":"0",
"length":"LENGTH_OF_STRING",
"string":"xsfsffwff.......",
//other json parameters
}
然后你可以发送你的字符串
于 2012-11-26T07:30:29.710 回答
0
问题是您试图将这一切都放入查询参数中。大多数服务器都有内置的 URL 限制,这是有充分理由的。
HTTP POST 的主体并没有什么特别之处,因此只需像发送其他任何内容一样发送它即可。只需确保您设置了Content-Length
标头(因为您知道;它可能被 HTTP 库覆盖),然后将您的数据流式传输。不需要任何编码或查询参数。
我对objective-c了解不多,但我确信有一种方法可以非常简单地在HTTP POST中发送这样的数据。我已经用 Go 和 node.js 完成了这项工作,两者都有在 POST 请求正文中发送任意数据的简单方法。
于 2012-11-26T07:39:52.480 回答