2016-03-24 44 views
4

Merhaba, sabun web servisine istek göndermek istiyorum. AFnetworking içinde çalıştı ve 500 iç sunucu hatası alıyorum ve şimdi nsurlconnection çalışıyorum ama aynı zamanda durum kodu 400 gösteriliyor. Lütfen bana yardım edin. Teşekkür ederim Gelişmiş duyum Benim kodum.ios'da sabun webservice isteği nasıl gönderilir?

NSString *soapString = [NSString stringWithFormat: 
            @"<?xml version=\"1.0\" encoding=\"utf-8\"?><soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\"><soap12:Body><addBusOrder xmlns=\"http://tempuri.org/\"><UserUniqueID>ok//8FjcvEKWMeeJJZHKYA</UserUniqueID><PlatFormID>4</PlatFormID><DeviceID>E3D2FCF6-F41B-4275-BD34-FAA31307EFFE</DeviceID><RouteScheduleId>532875503</RouteScheduleId><JourneyDate>2016-03-25</JourneyDate><FromCityid>734</FromCityid><ToCityid>202</ToCityid><TyPickUpID>22860424</TyPickUpID><Contactinfo><Name>vinod</Name><Email>[email protected]</Email><Phoneno>7842768497</Phoneno><mobile>8801720427</mobile></Contactinfo><pass><passenger><passengerName>kumar</passengerName><Age>23</Age><Fare>1072</Fare><Gender>M</Gender><Seatno>D3</Seatno></passenger></pass></addBusOrder></soap:Body></soap:Envelope></addBusOrder></soap12:Body></soap12:Envelope>"]; 
      NSLog(@"soapString %@",soapString); 

    NSString *msgLength = [NSString stringWithFormat:@"%li", [soapString length]]; 

    NSString *queryString = [NSString stringWithFormat: @"https://asprel.in/Service/AppServices.asmx/addBusOrder"]; 

    NSURL *url = [NSURL URLWithString:queryString]; 

    NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url]; 

    [req addValue:@"application/soap+xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
    [req addValue:msgLength forHTTPHeaderField:@"Content-Length"]; 
    [req addValue:@"http://tempuri.org/addBusOrder" forHTTPHeaderField:@"SOAPAction"]; 
    [req setHTTPMethod:@"POST"]; 
    [req setHTTPBody: [soapString dataUsingEncoding:NSUTF8StringEncoding]]; 


    NSOperationQueue *queue = [[NSOperationQueue alloc]init]; 
    [NSURLConnection sendAsynchronousRequest:req queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { 
     if (connectionError) { 
      NSLog(@"error %@",connectionError); 
     }else{ 
      NSLog(@"data %@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]); 
     } 


     NSXMLParser *parser = [[NSXMLParser alloc]initWithData:data]; 
     [parser parse]; 

    }]; 
} 

Hata:

status code: 500, headers { 
    "Access-Control-Allow-Origin" = "*"; 
    "Cache-Control" = private; 
    "Content-Length" = 322; 
    "Content-Type" = "text/plain; charset=utf-8"; 
    Date = "Thu, 24 Mar 2016 07:08:32 GMT"; 
    Etag = "\"\""; 
    Server = "Microsoft-IIS/8.0"; 
    "X-AspNet-Version" = "4.0.30319"; 

cevap

1

Sen

Yetkilendirme

// Create the request 
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:10]; 

// New Create the connection 
NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration]; 

NSURLSession *session = [NSURLSession sharedSession];//sessionWithConfiguration:defaultConfigObject delegate:self delegateQueue:[NSOperationQueue mainQueue]]; 

// NSURLCredential *creds = [NSURLCredential credentialWithUser:self.username password:self.password persistence:NSURLCredentialPersistenceForSession]; 

NSString *authStr = [NSString stringWithFormat:@"%@:%@",username API,password API];// @"username:password"; 

NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding]; 

NSString *authValue = [NSString stringWithFormat: @"Basic %@",[authData base64EncodedStringWithOptions:0]]; 

// Part Important 
[request setValue:authValue forHTTPHeaderField:@"Authorization"]; 

[request addValue:@"application/soap+xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
[request addValue:msgLength forHTTPHeaderField:@"Content-Length"]; 
[request addValue:@"http://tempuri.org/addBusOrder" forHTTPHeaderField:@"SOAPAction"]; 
[request setHTTPMethod:@"POST"]; 
[request setHTTPBody: [soapString dataUsingEncoding:NSUTF8StringEncoding]]; 

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

       NSXMLParser *parser = [[NSXMLParser alloc]initWithData:data]; 
       [parser parse]; 

       NSLog(@"%@",responseData); 
        if (error) { 
         [self handleError: error]; 
        } 
}]; 

[dataTask resume]; 

NSLog(@"Header Request--->> %@",request.allHTTPHeaderFields); 
eklemek deneyin API Yetkilendirme gerek