Iphone 如何通过GET方法在xcode中调用webservice?
我有这个链接: 功能新建消息($chat\u id、$user\u id、$message、$recipient\u id) 返回聊天记录id 有谁能解释一下如何用这个get方法调用webserive,或者告诉我 解决方案 我对代码所做的操作如下:Iphone 如何通过GET方法在xcode中调用webservice?,iphone,objective-c,web-services,getmethod,Iphone,Objective C,Web Services,Getmethod,我有这个链接: 功能新建消息($chat\u id、$user\u id、$message、$recipient\u id) 返回聊天记录id 有谁能解释一下如何用这个get方法调用webserive,或者告诉我 解决方案 我对代码所做的操作如下: -(void)newMessage{ if ([self connectedToWiFi]){ NSString *urlString = [NSString stringWithFormat:@"www.
-(void)newMessage{
if ([self connectedToWiFi]){
NSString *urlString = [NSString stringWithFormat:@"www.demii.com/demo/dooponz/admin/index.php/chat/new_message/4/1/you/1,1,2"];
NSLog(@"urlString is %@", urlString);
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
NSURL *requestURL = [NSURL URLWithString:urlString];
[request setURL:requestURL];
[request setHTTPMethod:@"POST"];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
NSLog(@"ERROR = %@",error.localizedDescription);
if(error.localizedDescription == NULL)
{
NSString *returnString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"response >>>>>>>>> succ %@",returnString);
[delegate ConnectionDidFinishLoading:returnString : @"newMessage"];
}
else
{
NSString *returnString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"response >>>>>>>>> fail %@",returnString);
[delegate ConnectiondidFailWithError:returnString : @"newMessage"];
}
}];
}
}
我该怎么办
提前感谢。从你的帖子中,我不确定你是想“发布”还是“获取”。然而,从你将方法设置为“发布”,并且你正在服务器上创建新内容这一事实来看,我假设你想发布 如果您想发布,可以使用my wrapper方法进行发布请求
+ (NSData *) myPostRequest: (NSString *) requestString withURL: (NSURL *) url{
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setTimeoutInterval:15.0];
NSData *requestBody = [requestString dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
[request setHTTPBody:requestBody];
NSURLResponse *response = NULL;
NSError *requestError = NULL;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&requestError];
return responseData;
}
其中请求字符串的格式如下:
NSString * requestString = [[NSString alloc] initWithFormat:@"username=%@&password=%@", userInfo[@"username"], userInfo[@"password"]];
这也将回击响应数据,您可以将其转换为如下字符串
responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
如果您试图从服务器获取json格式的数据
+ (NSArray *) myGetRequest: (NSURL *) url{
NSArray *json = [[NSArray alloc] init];
NSData* data = [NSData dataWithContentsOfURL:
url];
NSError *error;
if (data)
json = [[NSArray alloc] initWithArray:[NSJSONSerialization
JSONObjectWithData:data
options:kNilOptions
error:&error]];
//NSLog(@"get results: \n %@", json);
return json;
}
请像这样更改您的代码 -(作废)新消息{
NSString *urlString = [NSString stringWithFormat:@"http://www.demii.com/demo/dooponz/admin/index.php/chat/new_message/4/1/you/27" ];
NSLog(@"urlString is %@", urlString);
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
NSURL *requestURL = [NSURL URLWithString:urlString];
[request setURL:requestURL];
[request setHTTPMethod:@"POST"];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
NSLog(@"ERROR = %@",error.localizedDescription);
if(error.localizedDescription == NULL)
{
NSString *returnString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"response >>>>>>>>> succ %@",returnString);
[self parseStringtoJSON:data];
//[delegate ConnectionDidFinishLoading:returnString : @"newMessage"];
}
else
{
NSString *returnString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"response >>>>>>>>> fail %@",returnString);
// [delegate ConnectiondidFailWithError:returnString : @"newMessage"];
}
}];
}
-(void)parseStringtoJSON:(NSData*)数据{
}
如果你点击这个url,你将得到JSON响应字符串作为结果。如果你熟悉JSON解析,你可以根据键得到值
请参阅此链接:
NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSLog(@"chat id %@",[dict objectForKey:@"chat_log_id"]);