Swift PUT API Вызов недостающих параметровIOS

Программируем под IOS
Ответить
Anonymous
 Swift PUT API Вызов недостающих параметров

Сообщение Anonymous »

Я продолжаю получать Код ошибки 400: отсутствуют параметры
Я считаю, что проблема в формате, в котором я отправляю данные
API DOC : http://middleware.idxbroker.com/docs/ap ... ds-putLead
Я считаю, что необходимые данные для вызова — это имя, Фамилия и адрес электронной почты, мне нужно отправить другое поле как нулевое или я могу оставить его пустым?
Вызов API
/// Send Lead to IDX Broker
///
/// - Parameter lead: new Lead data fields
/// - Returns: configs for URL Session
class func putLead(lead: String) -> URLRequest {

let urlString = "https://api.idxbroker.com/leads/lead"
let url = NSURL(string: urlString)

var downloadTask = URLRequest(url: (url as URL?)!, cachePolicy: URLRequest.CachePolicy.reloadIgnoringCacheData, timeoutInterval: 20)
/******************** Add Headers required for API CALL *************************************/
downloadTask.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
downloadTask.setValue(APICalls.getAccessKey(), forHTTPHeaderField: "accesskey")
downloadTask.setValue("json", forHTTPHeaderField: "outputtype")
downloadTask.httpMethod = "PUT"
downloadTask.httpBody = lead.data(using: .utf8)
/******************** End Headers required for API CALL *************************************/

return downloadTask
}

Данные, отправленные в функцию
/// Create lead from text fields
let postString = "lead(firstName=\(String(describing: firstName.text!))&lastName=\(String(describing: lastName.text!))&=email=\(String(describing: Email.text!)))"

/// URL Encoding for put API
let escapedString = postString.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
print(escapedString!)
print(escapedString?.data(using: .utf8) ?? "Error")

/// API Call with passing json String
let downloadTask = APICalls.putLead(lead: escapedString!)

URLSession.shared.dataTask(with: downloadTask, completionHandler: {(data, response, error) -> Void in

/// Status Returned from API CALL
if let httpResponse = response as? HTTPURLResponse {
print("statusCode: \(httpResponse.statusCode)")
}

}).resume()
/******** End URL Session **********/


Подробнее здесь: https://stackoverflow.com/questions/436 ... parameters
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»