我发现了许多代码示例,用于使用NSURL
& dispatch_sync
发送POST请求,但没有发送像AFHTTPRequestOperationManager
这样的参数。 有人可以帮助参考或代码片段?xcode:调用具有参数的同步POST
我需要发送文字,号码&图像。
我发现了许多代码示例,用于使用NSURL
& dispatch_sync
发送POST请求,但没有发送像AFHTTPRequestOperationManager
这样的参数。 有人可以帮助参考或代码片段?xcode:调用具有参数的同步POST
我需要发送文字,号码&图像。
如果要进行网络请求,您应该始终以异步方式执行它们。如果要在等待服务器响应时阻止用户界面,请不要使请求同步,而是使其保持异步,但要呈现指示用户必须等待响应的UI(例如,UIActivityIndicatorView
等) ;你也可以考虑使用MBProgressHUD)。但不要执行同步请求。这是一个可怕的用户体验,看门狗程序可能会让你的应用程序失效。
如果您绝对必须同步执行您的请求,而不是创建您自己的发布请求,您可以留在AFNetworking中,但使用信号量使异步请求以同步方式运行。创建一个调度信号量(dispatch_semaphore_create
),发信号给AFNetworking完成块内的信号量(dispatch_semaphore_signal
),等待异步方法后的信号(dispatch_semaphore_wait
)。
与AFNetworking的技巧将是你只需要确保AFHTTPRequestOperationManager
或AFHTTPSessionManager
的completionQueue
不是主队列(即设置它是一个全球性的队列或您自己创建一个队列)。如果您不更改completionQueue
,则在主队列上使用信号量时会死锁。
但是,我再次强调不了这一点:从主线程完成同步请求的整个概念是错误的。这是一个可怕的想法。不要这样做。