sendSynchronousRequest
Плохо повлияет на вашу производительность, так как вы включаете изображения ..
Также я не думаю, что вы должны добавлять границу каждый раз. Я не знаю, почему это не удается, но я думаю, что структура ваших данных для отправки не сформирована должным образом. Я не смог добавить комментарий, поэтому отбросил ответ :(
NSString *boundary = [NSString stringWithString:@"------------------------14737829899999999999999999999990"];
[theRequest addValue:[NSString stringWithFormat:@"multipart/form-data;boundary=%@",boundary] forHTTPHeaderField:@"Content-Type"];
[theRequest setHTTPMethod:@"POST"];
NSMutableData *body=[[NSMutableData alloc] init];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"xmldata\"\r\n\r\n %@\r\n\r\n",soapMessage] dataUsingEncoding:NSUTF8StringEncoding]];
[theRequest setHTTPBody:body];
Где мыло будет содержать ваши данные, как это
петля
{
str =[str stringByAppendingString:@"<sampleRoot>"];
str = [str stringByAppendingFormat:@"<imageDate>%@</imageData>", imgData];
str =[str stringByAppendingString:@"</sampleRoot>"];
}
NSString *soapMessage=str;
Это просто логика, вам нужно будет изменить ее в соответствии с вашими требованиями.
Асинхронные соединения требуют немного больше кода, но все же относительно просты в реализации, для запуска соединения также требуется одна строка кода:
NSURLConnection* connection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self];
Затем нам нужно реализовать некоторые методы обратного вызова.
-(void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response
{
_data = [[NSMutableData alloc] init];
}
-(void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data
{
[_data appendData:data];
}
-(void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error
{
// Handle the error properly
}
-(void)connectionDidFinishLoading:(NSURLConnection*)connection
{
// Deal with the data
}
Они не будут блокировать выполнение, как в synchronousRequest