ios - 如何在 Alamofire 中使用 PUT 请求
<p><p>我是 swift 新手,我也在尝试使用 Alamofire 从 API 调用数据。我对如何使用 <strong>PUT 请求</strong> 来更新数据感到很困惑。我已经在 SO 中阅读了一些解决方案,但我不知道我将如何应用到我的应用程序中。我正在创建一个Event App,场景应该是,当参与者点击<strong>Check In</strong>按钮时,它会将<code>registered_flag</code>更新为<code>true</code>的意思参与者将被标记为<em>已注册</em>,按钮将更改为<strong> checkout </strong>。我真的不知道我的 API 服务是否正确。希望你能帮助我。非常感谢。</p>
<p><strong>事件参与者的 JSON 中的注册标志应在 checkInOutButton 后更新一次</strong></p>
<pre><code>{
"event_name": "Q & A",
"event_participants": [
{
"participant_id": "70984656-92bc-4c36-9314-2c741f068523",
"employee_number": null,
"last_name": "Surname",
"first_name": "FirstName",
"middle_name": null,
"display_name": "Surname, FirstName ",
"department_name": "Medical Informatics",
"position_name": "Application Developer",
"registered_flag": true,
"registered_datetime": "2018-09-13T08:54:40.150",
"registration_type": 1,
"delete_flag": false,
"manual_reg_flag": false,
"out_flag": false,
"out_datetime": null,
"classification": 6,
"others": "Guest"
}
}
</code></pre>
<p><strong>更新 JSON 以进行签到</strong></p>
<pre><code>{
"registered_flag": true,
"registration_type": 1
}
</code></pre>
<p><strong>updateType</strong></p>
<pre><code>enum UpdateParticipantType: String {
case checkIn = "Check In"
case checkOut = "Check Out"
}
</code></pre>
<p><strong>UpdateParticipant 的 APIService</strong></p>
<pre><code> func updateParticipant(updateType: UpdateParticipantType,
participantID: String,
successBlock: @escaping () -> Void,
failureBlock: @escaping (Error) -> Void)
{
let updateParticipantURL = URL(string: "\(REGISTER_PARTICIPANT_URL)/\(updateType)/\(participantID)")
Alamofire.request(updateParticipantURL!, method: .put).responseJSON { (response) in
print(response)
if let error = response.error
{
failureBlock(error)
print(error)
return
}
if let jsonArray = response.result.value as? [] {
for anItem in jsonArray {
if let eventparticipants = anItem["event_participants"] as? [] {
var extractedAttendees = ()
for participants in eventparticipants{
let success = Attendee.init(JSON: participants)
extractedAttendees.append(success!)
}
successBlock(extractedAttendees)
}
}
}
}
}
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>根据 <a href="https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#http-methods" rel="noreferrer noopener nofollow">Alamofire</a>文档:</p>
<pre><code>let parameters: Parameters = [
"foo": "bar",
"baz": ["a", 1],
"qux": [
"x": 1,
"y": 2,
"z": 3
]
]
Alamofire.request("https://httpbin.org/post", method: .post, parameters: parameters)
</code></pre>
<p>对于给定的 json</p>
<pre><code> {
"registered_flag": true,
"registration_type": 1
}
let parameters: Parameters = [
"registered_flag": true
"registration_type": 1
]
</code></pre></p>
<p style="font-size: 20px;">关于ios - 如何在 Alamofire 中使用 PUT 请求,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/52307722/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/52307722/
</a>
</p>
页:
[1]