2017-08-22 91 views
-2

我需要發送法語字符串「Commentaire d'arret」webserviceobjective c。 但是當我將這個字符串作爲參數發送到服務時,我的應用程序崩潰。和正常字符串像「印度」工作正常。發送參數到webservice

任何人都可以幫助我。

+1

試圖逃跑的單引號。 – the4kman

+0

不,我需要發送確切的字符串服務。 – Raviteja

+0

你需要改變你的後端webservice,嘗試在php中使用「真正的轉義字符串」,而你正在傳遞'你的字符串,這是打破SQL查詢,所以它不工作。如果你想交叉檢查,然後嘗試發送「Commentaire d arret」作爲它將起作用的參數。 – Pankaj

回答

2

編碼您的參數GET請求:

let param = "Commentaire d’arret" 
let encodedParam = (param as NSString).addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) 

結果評註%20D%E2%80%99arret

如果你想發送POST請求準備後的身體是這樣的:

let postString = "param=consultés" 
let postData = postString.data(using: .utf8) 

Objective-C的

NSString *param = @"Commentaire d’arret"; 
NSString *encodedParam = [param stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; 

NSString *postString = @"param=consultés"; 
NSData *postData = [postString dataUsingEncoding:NSUTF8StringEncoding]; 
+0

你可以寫在目標C的代碼。 – Raviteja

+0

更新我的答案。 –

+0

這工作,謝謝。 – Raviteja

-1

至於你說的我已經檢查你的代碼,你需要在轉換爲您的網址之前先進行編碼。嘗試這個。

NSString *searchApi = [NSString stringWithFormat:@"xxx/xxx/index? 
[email protected]és"]; 
searchApi = [searchApi stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSURL *tempURL = [NSURL URLWithString:searchApi]; 
+0

如果我編碼的字符串,我得到了另一個結果。不正確的結果從我的服務器。 – Raviteja

+0

你需要解碼在你的服務器端的字符串,並根據需要給予迴應。 – Pankaj

-1

試試這個:

NSString *strParam = @"Commentaire d’arret"; 
NSString *encodedParam = [strParam stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; 
+0

是的,我已經得到了答案,謝謝你的回答。 – Raviteja