2016-08-25 3 views
-9

Dans le code suivant, la méthode JSONparsing fonctionne correctement, mais lorsque je modifie l'URL dans la méthode odataJsonParsing avec: http://192.168.1.37:8000/sap/opu/odata/sap/ZGW_BANK_DATA_SRV/BankSet? $ filter = (BankCtry% 20eq% 20% 27IN% 27) & $ format = json impossible de charger les données, il montre Nil, mais la même méthode fonctionne très bien pour les URL restantes, quelqu'un peut me suggérer où je me suis trompé.Analyse JSON à l'aide de NSURL avec autorisation

**Condition**: In odataJsonParsing method have authorization credentials like. 


NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL   URLWithString:@"http://192.168.1.37:8000/sap/opu/odata/sap/ZGW_BANK_DATA_ SRV/BankSet?$filter=(BankCtry%20eq%20%27US%27)&$format=json"]]; 
    [request setHTTPMethod: @"GET" ]; 
    // [request setHTTPBody:self.requestData]; 
    [request setValue:@"XXXXXXX" forHTTPHeaderField:@"username"]; 
    [request setValue:@"XXXXXXX" forHTTPHeaderField:@"password"]; 
    [request setValue:[[NSUserDefaults    standardUserDefaults]valueForKey:@"Auth"]  forHTTPHeaderField:@"Authorization"]; 
     [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
    ----------------------------------------------------------------- 
    -(void)JSONParsing 
    { 
    NSError *error; 
    //--------------------------URLS----------------------------// 
    //http://api.geonames.org/citiesJSON? north=44.1&south=-9.9&east=-22.4&west=55.2&lang=de&username=demo 

    //http://api.kivaws.org/v1/loans/search.json?status=fundraising 

     //http://192.168.1.37:8000/sap/opu/odata/sap/ZGW_BANK_DATA_SRV/BankSet? $filter=(BankCtry%20eq%20%27IN%27)&$format=json 

    //http://jsonplaceholder.typicode.com/posts 

    NSURL *url=[NSURL  URLWithString:@"http://jsonplaceholder.typicode.com/posts"]; 

    NSData *jsonData=[[NSData alloc] initWithContentsOfURL:url]; 

    if(jsonData!=nil){ 
     NSDictionary *jsonArray=[NSJSONSerialization  JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error]; 
     NSLog(@"%@",jsonArray); 
    } 

    } 

    -(void)oDataJsonParsing 
    { 
    NSError *error; 
    NSData *jsonData=[[NSData alloc] initWithContentsOfURL:[NSURL  URLWithString:@"http://192.168.1.37:8000/sap/opu/odata/sap/ZGW_BANK_DATA_ SRV/BankSet?$filter=(BankCtry%20eq%20%27IN%27)&$format=json"]]; 

    NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error]; 
    NSLog(@"%@",dic); 
    } 
+0

Que voulez-vous dire? –

Répondre

-1
NSURL *url = [NSURL URLWithString:@"http://192.168.1.37:8000/sap/opu/odata/sap/ZGW_BANK_DATA_SRV/BankSet?$filter=(BankCtry%20eq%20%27CH%27)&$format=json"]; 
NSMutableURLRequest *request= [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:120.0]; 

NSString *authStr = [NSString stringWithFormat:@"%@:%@", @"abaper", @"[email protected]"]; 
NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding]; 
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64EncodedStringWithOptions:0]]; 

[request setValue:authValue forHTTPHeaderField:@"Authorization"]; 
NSError *error ; 
NSHTTPURLResponse *responseCode = nil; 

NSData *oResponseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&responseCode error:&error]; 
if([responseCode statusCode] != 200) 
{ 

    NSLog(@"Error getting %@, HTTP status code %li", url, (long)[responseCode statusCode]); 

} 
else{ 
    NSDictionary *responsedata = [NSJSONSerialization JSONObjectWithData:oResponseData options:NSJSONReadingAllowFragments error:&error]; 

    NSLog(@"%@",response data); 

    } 
+0

Essayez celui-ci, ça va fonctionner. –

+0

Cela fonctionne bien pour moi. –