Я создаю клиент для iPhone, который будет получать и отправлять в службу REST.GET-часть работает нормально, но я, похоже, не могу ничего постить.На данный момент сервер принимает только xml.Я пытался использовать ASIHTTPRequest, ASIFormDataRequest и делал это сам, но, похоже, ничего не работает.Может кто-нибудь мне помочь?Я довольно новичок в программировании на Objective-C.
Я получаю код состояния: 200 в качестве ответа, используя следующий код в didReceiveResponse:
NSHTTPURLResponse * httpResponse;
httpResponse = (NSHTTPURLResponse *) response;
int myStatus = httpResponse.statusCode;
if (myStatus == 400) {
NSLog(@"Status code: 400");
} else if (myStatus == 200) {
NSLog(@"Status code: 200");
} else {
NSLog(@"Other status code");
Здесь следует три различных подхода...
Код (ASIHTTPRequest):
NSURL *url = [NSURL URLWithString:@"myUrl.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request appendPostData:[@"<my xml>" dataUsingEncoding:NSUTF8StringEncoding]];
// Default becomes POST when you use appendPostData: / appendPostDataFromFile: / setPostBody:
[request setRequestMethod:@"POST"];
[request setDelegate:self];
[request startSynchronous];
Код (ASIFormDataRequest):
NSURL *url = [NSURL URLWithString:@"someUrl.com"];
ASIFormDataRequest *theRequest = [ASIFormDataRequest requestWithURL:url];
// [theRequest setPostValue:@"" forKey:@"key1"];
[theRequest setPostValue:@"90" forKey:@"key2"];
[theRequest setPostValue:@"150" forKey:@"key3"];
// [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:TRUE];
[theRequest startAsynchronous];
Код (третий метод):
NSData *myPostData = [[NSString stringWithFormat:@"<my xml>"] dataUsingEncoding:NSUTF8StringEncoding];//NSASCIIStringEncoding];
// NSString *xmlPostData = @"<my xml>";
NSURL *theURL = [NSURL URLWithString:@"someUrl.com"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:theURL];
[theRequest setHTTPMethod:@"POST"];
[theRequest setValue:@"application/xml; charset=utf-8" forHTTPHeaderField:@"Content-type"];
// [theRequest setValue:@"UTF-8" forHTTPHeaderField:@"Charset"];
[theRequest setHTTPBody:myPostData];// [xmlPostData dataUsingEncoding:NSUTF8StringEncoding]];// myPostData];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:TRUE];
Как насчет всех этих - (пустое) соединение: функции стиля?Должен ли какой-либо из них содержать специальный код для подключения к работе?
Большое спасибо за любую помощь!