Нужно ли setHTTPBody тип кодировки - PullRequest
0 голосов
/ 27 февраля 2012

Нужен ли setHTTPBody тип кодировки, если вы передаете ему тип данных NSMutable через NSData в параметре метода?

В основном у меня есть метод, который создает мой http-пакет тела в соответствии с этим

- (void) constructRequest
{
//Create final packet
    NSMutableData * myConstructedMutableDataPacket = [[NSMutableData alloc] init];

    [myConstructedMutableDataPacket appendData:Sig];
    [myConstructedMutableDataPacket appendData:Ver];
//etc

//call connection method
 [self  [self VehicleSearchRequest:myConstructedMutableDataPacket];

} ];

}

тогда в методе соединения я объявляю все свои запросы. Также я передаю объект NSMutableData myConstructedMutableDataPacket параметру NSData моего класса подключения, как указано ниже.

- (IBAction)VehicleSearchRequest:(NSData *)postBodyData
{
   //all my connection crap

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0]; //if request dose not finish happen within 60 second timeout.

    [request setHTTPMethod: @"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
    [request setHTTPBody:postBodyData]; //Is this okay without encoding type?


    NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:request delegate:self];

Я хотел бы знать, что мой [request setHTTPBody: postBodyData]; в порядке, потому что я передаю ему тип NSData из параметра самого метода ...

Вот как я видел это во многих местах:

urlRequest setHTTPBody:[httpBodyString dataUsingEncoding:NSISOLatin1StringEncoding]];
...