Получение ошибки 505 в HTTP-запросе ОПЦИИ команды и ответа активной синхронизации в swift - PullRequest
1 голос
/ 17 июня 2019

Я получил ошибку 505 (версия Http не поддерживается) в следующем API для активной синхронизации.

let userName = "userName.onmicrosoft.com"
let safeUserName = userName.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
let deviceid = UIDevice.current.identifierForVendor!.uuidString
let authString = "userName.onmicrosoft.com:12345"
let data = (authString).data(using: String.Encoding.utf8)
let base64 = "Basic \(data!.base64EncodedString(options: NSData.Base64EncodingOptions(rawValue: 0)))"
let urlToRequest = "https://outlook.office365.com:443/Microsoft-Server-ActiveSync"
let url4 = URL(string: urlToRequest)!
let session4 = URLSession.shared
let request = NSMutableURLRequest(url: url4)
request.httpMethod = "POST"
request.addValue(base64, forHTTPHeaderField: "Authorization")
request.addValue("keep-alive", forHTTPHeaderField: "Connection")
request.addValue("iPhone/0.3", forHTTPHeaderField: "User-Agent")
let params = ["Cmd": "OPTIONS", "User": "\(safeUserName!)", "DeviceId": "\(deviceid)","DeviceType":"iPhone"] as [String : Any]
request.httpBody = try! JSONSerialization.data(withJSONObject: params, options: [])
let task = session4.dataTask(with: request as URLRequest) { (data, response, error) in
  if (error != nil){
    print("response---->",response)
  }
}
task.resume()

Получение ответа об ошибке, как это

▿ Optional<NSURLResponse>
  - some : <NSHTTPURLResponse: 0x281ae28a0> { URL: https://outlook.office365.com:443/Microsoft-Server-ActiveSync } { Status Code: 505, Headers {
"Cache-Control" =     (
    private
);
"Content-Length" =     (
    71
);
"Content-Type" =     (
    "text/html"
);
Date =     (
    "Mon, 17 Jun 2019 05:57:50 GMT"
);
Server =     (
    "Microsoft-IIS/10.0"
);
"X-AspNet-Version" =     (
    "4.0.30319"
);
"X-BEServer" =     (
    MAXPR01MB4096
);
"X-BackEndHttpStatus" =     (
    505,
    505
);
"X-CalculatedBETarget" =     (
    "MAXPR01MB4096.INDPRD01.PROD.OUTLOOK.COM"
);
"X-CalculatedFETarget" =     (
    "MA1PR0101CU003.internal.outlook.com"
);
"X-DiagInfo" =     (
    MAXPR01MB4096
);
"X-FEProxyInfo" =     (
    "MA1PR0101CA0054.INDPRD01.PROD.OUTLOOK.COM"
);
"X-FEServer" =     (
    MA1PR0101CA0054,
    PN1PR0101CA0057
);
"X-MS-BackOffDuration" =     (
    "L/-470"
);
"X-Powered-By" =     (
    "ASP.NET"
);
"X-RUM-Validated" =     (
    1
);
"request-id" =     (
    "a85221f0-b594-4047-a366-ae164e721982"
);
} }

Нужно ожидать HTTP / 1.1 200 OK, ответ как этот

HTTP / 1.1 200 OK Cache-Control: частный Разрешить: ОПЦИИ, POST-сервер: Microsoft-IIS / 7.0 MS-Server-ActiveSync: 14.00.0536.000 MS-ASProtocolВерсии: 2.0,2.1,2.5,12.0,12.1,14.0 MS -ASProtocolCommands: Синхронизация, SendMail, SmartForward, SmartReply, GetAttachment, GetHierarchy, CreateCollection, DeleteCollection, MoveCollection, FolderSync, FolderCreate, FolderDelete, FolderUpdate, MoveItems, GetItemEstimate, PublicResponse, Provision, ResourcePort, ItemRoSecate, ResourcePort, ItemRecolate, ResourcePort, ItemRecolate, Resolment ItemSecrate, Provision ItemSecate, Resource ItemSecrate ОПЦИИ, POST X-AspNet-версия: 2.0.50727 X-Powered-By: ASP.NET Дата: четверг, 12 марта 2009 20:03:29 GMT Длина контента: 0

...