Отправка JSON в IIS с iPhone на иврите, вырезанный до конца - PullRequest
1 голос
/ 13 февраля 2012

Я отправляю данные на сервер из приложения для iPhone с этим кодом:

- (void) sendGeneral:(NSString *) general{
    self.responseData = [NSMutableData data];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:CBURL]];  
    [request setHTTPMethod:@"POST"];

    sendString = [[NSMutableString alloc] initWithString:general];

    requestData = [NSMutableData dataWithBytes:[sendString UTF8String] length:[sendString length]];
    [request setHTTPBody:requestData];

    [[NSURLConnection alloc] initWithRequest:request delegate:self];
}

Пока я отправляю латинские данные, все отправляется хорошо, а сервер получает полную строку когда я посылаю в него данные на иврите, он где-то обрезается, и сервер не получает все данные, при отладке Xcode я вижу полную строку, так как использую NSLog для вывода:

{ "Сессия": { "customer_id": - 1, "client_time": "3", "идентификатор_пользователя": - 1, "device_token": "3"}, "Ошибка": { "код_ошибки": - 1, "error_message": "3"}, "Успешный": { "success_code": - 1, "success_message": "3"}, "подробности": { "StartCallID": - 1, "user_password": "כ », "имя_пользователя": "ככ", "StartDate": "3", "EndDate": "3"}, "PTYPE": { "PTYPE": 3}} * +1008 *

Может ли кто-нибудь помочь?

1 Ответ

1 голос
/ 13 февраля 2012

Я не совсем уверен, что это решит вашу проблему, иврит UTF8 или UTF16 ??Я полагаю, что вы отрезаны примерно на полпути через данные?Это означало бы, что длина sendString возвращает только половину количества байтов, если это UTF16.

Лучший способ сделать это так:


[request setHTTPBody:[general dataUsingEncoding:NSUTF8StringEncoding]];
// or if it's UTF16 
[request setHTTPBody:[general dataUsingEncoding: NSUnicodeStringEncoding]];
...