nsurlsessiondatatask връща нула при изпращане на заявка за публикация до базиран на REST url ios

-(void)showData {
NSError *error;

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
NSURL *url = [NSURL URLWithString:@"https://public-api.wordpress.com/rest/v1.1/sites/en.blog.wordpress.com/posts"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:60.0];

[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request addValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setHTTPMethod:@"POST"];
NSDictionary *mapData = [[NSDictionary alloc] initWithObjectsAndKeys: @"1", @"number",nil];
NSData *postData = [NSJSONSerialization dataWithJSONObject:mapData options:0 error:&error];
[request setHTTPBody:postData];


NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

    if(error == nil)
    {
        NSString *text = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
        NSLog(@"Data = %@",text);
    }




    NSLog(@"data is %@", data );
    NSLog(@"response is %@" , response);
}];
[postDataTask resume];
}

когато изпълня кода, дебъгерът прескача от NSURLSessionDataTask и генерираният регистрационен файл е __NSCFLocalDataTask: 0x7ff061751960>{ taskIdentifier: 1} { suspended } и не идва никакви данни в NSData и NSResponse.


person dilshad haidari    schedule 10.06.2015    source източник
comment
Моля, вижте тази връзка, аз мисля, че ще получите представа от това:   -  person Bhadresh Mulsaniya    schedule 10.06.2015


Отговори (1)


Опитайте този код:

NSURL *url=[NSURL URLWithString:@"https://public-api.wordpress.com/rest/v1.1/sites/en.blog.wordpress.com/posts"];
NSData *contactData=[NSData dataWithContentsOfURL:url];
NSMutableArray *allContectData=[NSJSONSerialization JSONObjectWithData:contactData options:0 error:nil];
NSLog(@"%@",allContectData);

В противен случай използвайте този код

-(void)showData{

    NSString *urlString = @"https://public-api.wordpress.com/rest/v1.1/sites/en.blog.wordpress.com/posts";
NSURL *url = [NSURL URLWithString:urlString];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NO timeoutInterval:20.0f];
responseData = [[NSMutableData alloc] init];
connection = [NSURLConnection connectionWithRequest:request delegate:self];
}

използвайте метода на делегат NSURLConnectionDataDelegate

-(void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
     NSMutableArray *allContectData=[NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
     NSLog(@"%@",allContectData);
}

-(void) connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
    NSLog(@"%@",error);
}
person Dharmesh Dhorajiya    schedule 10.06.2015