Gle*_*enn 2 ios swift alamofire
我正在尝试重新创建这个Postman设置,以便在Alamofire上发布.这是我第一次看到一个需要参数和带有Raw Json的主体的API.
我已经完成了收集和格式化我的数据(在Json中使用SwiftyJSON或Dictionary [String : Any]/ Parameters)来满足上述要求.
虽然我确实看到了类似的问题:邮递员要求Alamofire请求,但它没有有效的答案.假设我对从各种API发布/获取/ etc数据非常有经验,但我只是不知道如何传递原始数据,就像上面的照片一样.请在代码中查看我的评论.
这是我正在为此请求执行的功能:
/** Apply to job with Shift.
* This service function creates a json data for applying.
*/
func someFuncService(_ job: Job, daySchedules: [(Int, String, Schedule)], withBlock completion: @escaping JobServiceCommonCallBack) {
AuthService.someFunc { (currentCustomer, accessToken) in
guard let lalala = currentCustomer?.id,
let accessT = accessToken else {
completion(LalaErrors.currentCustomerError)
return
}
guard let jobId = job.id else {
completion(LalaErrors.modelError)
return
}
let coreService = LalaCoreService()
let applicantEndpoint = LalaCoreService.Endpoint.Applicant
let parameters = [
"param1" : customerId,
"param2" : jobId,
"accessToken" : accessToken,
"shift" : self.generateDataFromDaySchedules(daySchedules) // this returns [String : Any], can be printed into Json using JSON(x)
] as Parameters
GPLog(classSender: self, log: "FINAL PARAMETER: \(parameters)")
coreService.request = Alamofire.request(
applicantEndpoint,
method: .post,
parameters: parameters,
encoding: URLEncoding.default, // I already have tried .httpbody too.
headers: nil
)
coreService.request {
(response, result) in
if let error = result?.error {
if response!.statusCode == 500 {
completion(GPKitError.newError(description: "Failed to apply. Please contact the admin."))
return
}
completion(error)
return
}
// Success
completion(nil)
return
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:问题是,我在这里做错了什么?API返回状态码500内部服务器错误.
Joh*_*n D 11
coreService.request = Alamofire.request(
applicantEndpoint,
method: .post,
parameters: parameters,
encoding: URLEncoding.default, // I already have tried .httpbody too.
headers: nil
)
Run Code Online (Sandbox Code Playgroud)
应该
coreService.request = Alamofire.request(
applicantEndpoint + accessToken,
method: .post,
parameters: parameters,
encoding: JSONEncoding.default,
headers: nil
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3152 次 |
| 最近记录: |