Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何通过GET方法在xcode中调用webservice?_Iphone_Objective C_Web Services_Getmethod - Fatal编程技术网

Iphone 如何通过GET方法在xcode中调用webservice?

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.

我有这个链接:

功能新建消息($chat\u id、$user\u id、$message、$recipient\u id)

返回聊天记录id

有谁能解释一下如何用这个get方法调用webserive,或者告诉我

解决方案

我对代码所做的操作如下:

-(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"]);