jsonパラメータをサーバに送信してみます。すべてのコードがありますが、バックスラッシュ文字に問題があります。 これはバックスラッシュ文字を含むテスト変数の結果です。サーバー側では無効な入力エラーがあり、サーバーはsendパラメーターを検出できないため、この文字を削除する必要があります。文字列から単一のbackSlashを削除する
" " {\ "force \":\ "1 \"、\ "from \":\ "0 \"、\ "flag \":\ "1 \"、\ " "propValueMask":\ "* \"、\ "itemsType \":\ "avl_resource \"、\ "sortType \":\ "\":\ " avl_resource \: "\ ""、\ "たpropName \ propType \ "\、" SYS_NAMEの\":\ "SYS_NAME \"}}"
private func RegisterForGetSourceList() {
var sid = ""
if let authEntity = AuthenticationManager.shareInstance.fetchAuthenticationEntity() {
if let tokenKey = authEntity.sID {
sid = tokenKey
}
}
let specParam = ["itemsType":"avl_resource","propName":"sys_name","propValueMask":"*","sortType":"sys_name","propType":"avl_resource"]
let paramJSON = ["spec":specParam,"force":"1","flag":"1","from":"0","to":"0"] as [String : Any]
do {
let paramData = try JSONSerialization.data(withJSONObject: paramJSON, options: .prettyPrinted)
if let paramString = NSString(data: paramData, encoding: String.Encoding.utf8.rawValue) as String? {
var test = String(paramString.characters.filter { !" \n\t\r".characters.contains($0) })
test = test.replacingOccurrences(of: "\\", with: "", options: NSString.CompareOptions.literal, range: nil)
let parameters = [Constant.SVC:Constant.SEARCH_ITEMS_SVC,Constant.SID:sid,Constant.PARAM:test] as [String : Any]
LibraryAPI.shareInstance.RunHttpPostJSONRequest(parameters: parameters, contentType: "JSON", closure: { success, error in
if let result = success as? [String:Any] {
if let eid = result["eid"] as? String {
}
}
else if error != nil {
print(error?.localizedDescription ?? "there was an error in get response")
}
})
}
}
catch {
print(error.localizedDescription)
}
}
i」がテーマのすべてに置き換える提案された、多くのリンクを読みます\ "でも動作していません。 誰かがこの問題を解決するための提案をしています ありがとう
バックスラッシュが仮想です。リテラル文字列に二重引用符を表示する必要があります。それらはサーバーに送られません**。 – vadian
...そして、文字列をきれいに印刷して後で空白と行区切り記号を削除するのはナイスではありません。サーバーは審美性について全く気にしません。オプションを削除します。 – vadian