0

非常に長い文字列(文字列の長さが10000を超える)をサーバーに送信し、その代わりに文字列からjSON応答を取得したいと思います。このタスクに最適なアプローチは何ですか。この非常に長い文字列と一緒にさまざまなパラメータを送信しています。

4

3 に答える 3

0

問題は、これをすべてクエリ パラメータに入れようとしていることです。ほとんどのサーバーには、URL の制限が組み込まれていますが、それには十分な理由があります。

HTTP POST の本文について特別なことは何もないので、他のものと同じように送信するだけです。ヘッダーを設定していることを確認してくださいContent-Length(ご存知のように、HTTP ライブラリでカバーされている可能性があります)。その後、データをストリーミングします。エンコーディングやクエリ パラメータは必要ありません。

Objective-C についてはよくわかりませんが、このようなデータを HTTP POST で非常に簡単に送信する方法があると確信しています。私は Go と node.js でこれを行いましたが、どちらも POST リクエスト本文で任意のデータを送信する簡単な方法を持っています。

于 2012-11-26T07:39:52.480 に答える
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

長い文字列を 1 回のリクエストで送信できる部分に分割します。このようなjsonを作成します

 {
    "index":"0",
    "length":"LENGTH_OF_STRING",
    "string":"xsfsffwff.......",
    //other json parameters
 }

次に、文字列を送信できます

于 2012-11-26T07:30:29.710 に答える