2017-11-21 10 views
1

次のコード<NSMutableURLRequest:0x1c0c7ae0> {URL:(NULL)}客観Cで

-(void)AddEmpService:(NSDictionary *)params 
{ 

    recordResults = FALSE; 
    OutPutStringName = [[NSMutableString alloc] init]; 
    [OutPutStringName appendString: @"string"]; 

    NSString *urlstr =[NSString stringWithFormat:@"http://www.seen.com/SeenApi/Service.svc/EmpService?type=Insert&Id=&ClassId=%@&Name=%@&Desg=%@&Age=%@&Add=%@&Sal=%@&Gend=%@&Phone=%@&EmpId=%@",[params objectForKey:@"Id"],[params objectForKey:@"EmpName"],[params objectForKey:@"EmpDesignation"],[params objectForKey:@"EmpAge"],[params objectForKey:@"EmpAddress"],[params objectForKey:@"EmpSalary"],[params objectForKey:@"EmpGender"],[params objectForKey:@"EmpPhone"],[params objectForKey:@"EmpId"]]; 

    NSLog(@"dict is %@",params); 
    urlstr=[urlstr stringByReplacingOccurrencesOfString:@" " withString:@"%20"]; 
    NSLog(@"%@",urlstr); 
    NSURL *url= [NSURL URLWithString:urlstr]; 
    NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url]; 
    NSLog(@"the request %@",theRequest); 
    [theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
    NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; 
    if(theConnection) 
    { 
     webData = [NSMutableData data]; 
    } 
    else 
    { 
     NSLog(@"theConnection is NULL"); 
    } 

} 

のNSLog(@ "%の@"、urlstr)の問題を取得します。

http://www.seen.com/SeenApi/Service.svc/EmpService?type=Insert&Id=&ClassId=63&Name=Mark&Desg=Teacher&Age=25&Add=New%%20York&Sal=5000&Gend=Male&Phone=0987654321&EmpId=235 

しかし、( "要求%の@" @、theRequest) のNSLogにnullを取得しています。

the request <NSMutableURLRequest: 0x1c0c7ae0> { URL: (null) } 
2017-11-21 14:07:36.262 Emp[7070:2394869] ERROR with theConenction 

これを使用してみてくださいissue.TIA

+1

。 'NSURLComponents'と' NSURLQueryItem'を使ってURLを作成することを強くお勧めします。これは暗黙的に符号化率を処理します。 – vadian

+0

文字列@vadian – Rajeev

+0

を修正してください。私は辞書の正確な内容がわからないのでできません。しかし、 'stringByReplacingOccurrencesOfString'の代わりに' stringByAddingPercentEncodingWithAllowedCharacters'を使用して適切なパーセントエンコーディングを追加する方が良いでしょう。 – vadian

答えて

1

を把握するために私を助けてください:

文字列に2つの連続した ``%文字があります
NSMutableURLRequest * theRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:[urlstr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]]]; 
+0

ありがとう@トロンゴはこれを解決しました – Rajeev