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