Skip to content

Instantly share code, notes, and snippets.

@OctoberHammer
Last active May 17, 2017 10:38
Show Gist options
  • Save OctoberHammer/ee00effc734efd740ab1306419634fee to your computer and use it in GitHub Desktop.
Save OctoberHammer/ee00effc734efd740ab1306419634fee to your computer and use it in GitHub Desktop.
cutl into Alamofire
#Есть HTTP-запрос, который выполняется например из терминала
##Request
-X GET -H "Content-Type: application/x-www-form-urlencoded" -H "X-Parse-Application-Id: ad383bxkAmwAgKgPEqZHjewleWi2bLmNTlctBuky" -H "X-Parse-Master-Key: qTJ3eatgZppvAWqkb82WsCoqG9MqRog2MBXqRHHv" -d "where={\"parentID\":{\"\$exists\":false}}" https://parseapi.back4app.com/classes/category
#Пруф:
https://www.dropbox.com/s/qd0fkay5nnvf4bc/Terminal.png?dl=0
#Или например из программки Paw, которая может создавать, отлаживать, исполнять и конвертировать HTTP-запросы в различные форматы.
## Request
curl "https://parseapi.back4app.com/classes/category" \
-H "X-Parse-Master-Key: qTJ3eatgZppvAWqkb82WsCoqG9MqRog2MBXqRHHv" \
-H "X-Parse-Application-Id: ad383bxkAmwAgKgPEqZHjewleWi2bLmNTlctBuky" \
-H "Content-Type: application/x-www-form-urlencoded; charset=utf-8" \
--data-urlencode "where={\"parentID\":{\"$exists\"}}"
# Пруф:
https://www.dropbox.com/s/mnoo9nxt30c5nhy/Untitled_Paw_Document_and_MyRequestController_swift.png?dl=0
# Эта программка конвертирует этот запрос в такой вот коротенький и элегантный как на мой взгляд Swift-код:
///////////////
/// SWift+Alamofire
func sendRequestRequest() {
/**
Request
get https://parseapi.back4app.com/classes/category
*/
// Add Headers
let headers = [
"X-Parse-Master-Key":"qTJ3eatgZppvAWqkb82WsCoqG9MqRog2MBXqRHHv",
"X-Parse-Application-Id":"ad383bxkAmwAgKgPEqZHjewleWi2bLmNTlctBuky",
"Content-Type":"application/x-www-form-urlencoded; charset=utf-8",
]
// Form URL-Encoded Body
let body = [
"where":"{\"parentID\":{\"$exists\"}}",
]
// Fetch Request
Alamofire.request("https://parseapi.back4app.com/classes/category", method: .get, parameters: body, encoding: URLEncoding.default, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
# Но выполнение этого кода приводит к вот такой ошибке:
"HTTP Request failed: Optional(Alamofire.AFError.responseValidationFailed(Alamofire.AFError.ResponseValidationFailureReason.unacceptableStatusCode(500)))"
У меня большое подозрение что
--data-urlencode "where={\"parentID\":{\"$exists\"}}" переведено неправильно в
let body = [
"where":"{\"parentID\":{\"$exists\"}}",
]
Если убрать и из curl и из Alamofire ограничение (условие), типа вот так:
func sendRequestRequest() {
/**
Request
get https://parseapi.back4app.com/classes/category
*/
// Add Headers
let headers = [
"X-Parse-Master-Key":"qTJ3eatgZppvAWqkb82WsCoqG9MqRog2MBXqRHHv",
"X-Parse-Application-Id":"ad383bxkAmwAgKgPEqZHjewleWi2bLmNTlctBuky",
"Content-Type":"application/x-www-form-urlencoded; charset=utf-8",
]
// Form URL-Encoded Body
let body: [String:Any?] = [:]
// "where":"{\"parentID\":{\"$exists\"}}",
// ]
// Fetch Request
Alamofire.request("https://parseapi.back4app.com/classes/category", method: .get, parameters: body, encoding: URLEncoding.default, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
То запрос выполняется, и получает данные
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment