0

我希望向服务器发送一个非常长的字符串(字符串长度超过 10000),然后从字符串中获取 jSON 响应。什么是该任务的最佳方法。我正在发送各种参数以及这个非常长的字符串。

4

3 回答 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 回答