Продолжая от этого вопроса,
Я пытаюсь преобразовать [String : Any]
в String
, а затем передать это String
в forHTTPHeaderField
.
Попытка 1: без Pretty
let encoder = JSONEncoder()
if let json = try? encoder.encode(jsonDict) {
convertedString = String(data: json, encoding: .utf8)!
}
print("JsonStringFormat ", convertedString )
let url = NSURL(string: getMenuURL)
let request = NSMutableURLRequest(url: url! as URL)
request.setValue(convertedString, forHTTPHeaderField: "SessionInfo")
print("\nHEADer__reQQ__ ", request.allHTTPHeaderFields)
ВЫВОД:
JsonStringFormat {"Token":"96FFC5B994514B3D","UICulture":"en-CA ","LanguageCode":"ENG","CompanyID":"QAP","IMEINo":"1jzBG3TSrMzj\/tKihlEv8g=="}
HEADer__reQQ__ ["SessionInfo": "{\"Token\":\"96FFC5B994514B3D\",\"LanguageCode\":\"ENG\",\"UICulture\":\"en-CA \",\"CompanyID\":\"QAP\",\"IMEINo\":\"1jzBG3TSrMzj\\/tKihlEv8g==\"}"]
Попытка 2: с напечатанным .pretty
let encoder = JSONEncoder()
// ADDING PRETTY FORMAT
encoder.outputFormatting = .prettyPrinted
if let json = try? encoder.encode(jsonDict) {
convertedString = String(data: json, encoding: .utf8)!
}
print("PrettyJsonStringFormat ", convertedString )
let url = NSURL(string: getMenuURL)
let request = NSMutableURLRequest(url: url! as URL)
request.setValue(convertedString, forHTTPHeaderField: "SessionInfo")
print("\nPrettyHeader__ ", request.allHTTPHeaderFields)
ВЫВОД:
PrettyJsonStringFormat {
"Token" : "70E277954143414A",
"UICulture" : "en-CA ",
"LanguageCode" : "ENG",
"CompanyID" : "QAP",
"IMEINo" : "1jzBG3TSrMzj\/tKihlEv8g=="
}
PrettyHeader__ [:]
Если я выберу Попытку 1, к этому значению будет добавлено BackSlash \
. Чтобы избежать этого, я использую Попытку 2, [Pretty Printed]
.
Я не знаю, почему request.allHTTPHeaderFields
нет добавленных значений заголовка.
Пожалуйста, направь меня.
prettyPrinted
? Сервер не заботится о читаемости. - person vadian   schedule 14.06.2019