RequestRetrier.html 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>RequestRetrier Protocol Reference</title>
  5. <link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
  6. <link rel="stylesheet" type="text/css" href="../css/highlight.css" />
  7. <meta charset="utf-8">
  8. <script src="../js/jquery.min.js" defer></script>
  9. <script src="../js/jazzy.js" defer></script>
  10. <script src="../js/lunr.min.js" defer></script>
  11. <script src="../js/typeahead.jquery.js" defer></script>
  12. <script src="../js/jazzy.search.js" defer></script>
  13. </head>
  14. <body>
  15. <a name="//apple_ref/swift/Protocol/RequestRetrier" class="dashAnchor"></a>
  16. <a title="RequestRetrier Protocol Reference"></a>
  17. <header class="header">
  18. <p class="header-col header-col--primary">
  19. <a class="header-link" href="../index.html">
  20. Alamofire Docs
  21. </a>
  22. (87% documented)
  23. </p>
  24. <p class="header-col--secondary">
  25. <form role="search" action="../search.json">
  26. <input type="text" placeholder="Search documentation" data-typeahead>
  27. </form>
  28. </p>
  29. <p class="header-col header-col--secondary">
  30. <a class="header-link" href="https://github.com/Alamofire/Alamofire">
  31. <img class="header-icon" src="../img/gh.png"/>
  32. View on GitHub
  33. </a>
  34. </p>
  35. <p class="header-col header-col--secondary">
  36. <a class="header-link" href="dash-feed://https%3A%2F%2Falamofire%2Egithub%2Eio%2FAlamofire%2Fdocsets%2FAlamofire%2Exml">
  37. <img class="header-icon" src="../img/dash.png"/>
  38. Install in Dash
  39. </a>
  40. </p>
  41. </header>
  42. <p class="breadcrumbs">
  43. <a class="breadcrumb" href="../index.html">Alamofire Reference</a>
  44. <img class="carat" src="../img/carat.png" />
  45. RequestRetrier Protocol Reference
  46. </p>
  47. <div class="content-wrapper">
  48. <nav class="navigation">
  49. <ul class="nav-groups">
  50. <li class="nav-group-name">
  51. <a class="nav-group-name-link" href="../Classes.html">Classes</a>
  52. <ul class="nav-group-tasks">
  53. <li class="nav-group-task">
  54. <a class="nav-group-task-link" href="../Classes/DataRequest.html">DataRequest</a>
  55. </li>
  56. <li class="nav-group-task">
  57. <a class="nav-group-task-link" href="../Classes/DownloadRequest.html">DownloadRequest</a>
  58. </li>
  59. <li class="nav-group-task">
  60. <a class="nav-group-task-link" href="../Classes/DownloadRequest/DownloadOptions.html">– DownloadOptions</a>
  61. </li>
  62. <li class="nav-group-task">
  63. <a class="nav-group-task-link" href="../Classes/MultipartFormData.html">MultipartFormData</a>
  64. </li>
  65. <li class="nav-group-task">
  66. <a class="nav-group-task-link" href="../Classes/NetworkReachabilityManager.html">NetworkReachabilityManager</a>
  67. </li>
  68. <li class="nav-group-task">
  69. <a class="nav-group-task-link" href="../Classes/NetworkReachabilityManager/NetworkReachabilityStatus.html">– NetworkReachabilityStatus</a>
  70. </li>
  71. <li class="nav-group-task">
  72. <a class="nav-group-task-link" href="../Classes/NetworkReachabilityManager/ConnectionType.html">– ConnectionType</a>
  73. </li>
  74. <li class="nav-group-task">
  75. <a class="nav-group-task-link" href="../Classes/Request.html">Request</a>
  76. </li>
  77. <li class="nav-group-task">
  78. <a class="nav-group-task-link" href="../Classes/Request/ValidationResult.html">– ValidationResult</a>
  79. </li>
  80. <li class="nav-group-task">
  81. <a class="nav-group-task-link" href="../Classes/ServerTrustPolicyManager.html">ServerTrustPolicyManager</a>
  82. </li>
  83. <li class="nav-group-task">
  84. <a class="nav-group-task-link" href="../Classes/SessionDelegate.html">SessionDelegate</a>
  85. </li>
  86. <li class="nav-group-task">
  87. <a class="nav-group-task-link" href="../Classes/SessionManager.html">SessionManager</a>
  88. </li>
  89. <li class="nav-group-task">
  90. <a class="nav-group-task-link" href="../Classes/SessionManager/MultipartFormDataEncodingResult.html">– MultipartFormDataEncodingResult</a>
  91. </li>
  92. <li class="nav-group-task">
  93. <a class="nav-group-task-link" href="../Classes.html#/s:9Alamofire13StreamRequestC">StreamRequest</a>
  94. </li>
  95. <li class="nav-group-task">
  96. <a class="nav-group-task-link" href="../Classes/TaskDelegate.html">TaskDelegate</a>
  97. </li>
  98. <li class="nav-group-task">
  99. <a class="nav-group-task-link" href="../Classes/UploadRequest.html">UploadRequest</a>
  100. </li>
  101. </ul>
  102. </li>
  103. <li class="nav-group-name">
  104. <a class="nav-group-name-link" href="../Enums.html">Enumerations</a>
  105. <ul class="nav-group-tasks">
  106. <li class="nav-group-task">
  107. <a class="nav-group-task-link" href="../Enums/AFError.html">AFError</a>
  108. </li>
  109. <li class="nav-group-task">
  110. <a class="nav-group-task-link" href="../Enums/AFError/ParameterEncodingFailureReason.html">– ParameterEncodingFailureReason</a>
  111. </li>
  112. <li class="nav-group-task">
  113. <a class="nav-group-task-link" href="../Enums/AFError/MultipartEncodingFailureReason.html">– MultipartEncodingFailureReason</a>
  114. </li>
  115. <li class="nav-group-task">
  116. <a class="nav-group-task-link" href="../Enums/AFError/ResponseValidationFailureReason.html">– ResponseValidationFailureReason</a>
  117. </li>
  118. <li class="nav-group-task">
  119. <a class="nav-group-task-link" href="../Enums/AFError/ResponseSerializationFailureReason.html">– ResponseSerializationFailureReason</a>
  120. </li>
  121. <li class="nav-group-task">
  122. <a class="nav-group-task-link" href="../Enums/HTTPMethod.html">HTTPMethod</a>
  123. </li>
  124. <li class="nav-group-task">
  125. <a class="nav-group-task-link" href="../Enums/Result.html">Result</a>
  126. </li>
  127. <li class="nav-group-task">
  128. <a class="nav-group-task-link" href="../Enums/ServerTrustPolicy.html">ServerTrustPolicy</a>
  129. </li>
  130. </ul>
  131. </li>
  132. <li class="nav-group-name">
  133. <a class="nav-group-name-link" href="../Extensions.html">Extensions</a>
  134. <ul class="nav-group-tasks">
  135. <li class="nav-group-task">
  136. <a class="nav-group-task-link" href="../Extensions/Notification.html">Notification</a>
  137. </li>
  138. <li class="nav-group-task">
  139. <a class="nav-group-task-link" href="../Extensions/Notification/Name.html">– Name</a>
  140. </li>
  141. <li class="nav-group-task">
  142. <a class="nav-group-task-link" href="../Extensions/Notification/Key.html">– Key</a>
  143. </li>
  144. <li class="nav-group-task">
  145. <a class="nav-group-task-link" href="../Extensions/String.html">String</a>
  146. </li>
  147. <li class="nav-group-task">
  148. <a class="nav-group-task-link" href="../Extensions/URL.html">URL</a>
  149. </li>
  150. <li class="nav-group-task">
  151. <a class="nav-group-task-link" href="../Extensions/URLComponents.html">URLComponents</a>
  152. </li>
  153. <li class="nav-group-task">
  154. <a class="nav-group-task-link" href="../Extensions/URLRequest.html">URLRequest</a>
  155. </li>
  156. </ul>
  157. </li>
  158. <li class="nav-group-name">
  159. <a class="nav-group-name-link" href="../Functions.html">Functions</a>
  160. <ul class="nav-group-tasks">
  161. <li class="nav-group-task">
  162. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire2eeoiSbAA26NetworkReachabilityManagerC0cD6StatusO_AFtF">==(_:_:)</a>
  163. </li>
  164. <li class="nav-group-task">
  165. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire8downloadAA15DownloadRequestCAA14URLConvertible_p_AA10HTTPMethodO6methods10DictionaryVySSypGSg10parametersAA17ParameterEncoding_p8encodingAJyS2SGSg7headers10Foundation3URLV011destinationO0_AD0C7OptionsV7optionstAU_So15HTTPURLResponseCtcSg2totF">download(_:method:parameters:encoding:headers:to:)</a>
  166. </li>
  167. <li class="nav-group-task">
  168. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire8downloadAA15DownloadRequestCAA21URLRequestConvertible_p_10Foundation3URLV011destinationH0_AD0C7OptionsV7optionstAH_So15HTTPURLResponseCtcSg2totF">download(_:to:)</a>
  169. </li>
  170. <li class="nav-group-task">
  171. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire8downloadAA15DownloadRequestC10Foundation4DataV12resumingWith_AE3URLV011destinationI0_AD0C7OptionsV7optionstAJ_So15HTTPURLResponseCtcSg2totF">download(resumingWith:to:)</a>
  172. </li>
  173. <li class="nav-group-task">
  174. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire7requestAA11DataRequestCAA21URLRequestConvertible_pF">request(_:)</a>
  175. </li>
  176. <li class="nav-group-task">
  177. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire7requestAA11DataRequestCAA14URLConvertible_p_AA10HTTPMethodO6methods10DictionaryVySSypGSg10parametersAA17ParameterEncoding_p8encodingAJyS2SGSg7headerstF">request(_:method:parameters:encoding:headers:)</a>
  178. </li>
  179. <li class="nav-group-task">
  180. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire6streamAA13StreamRequestCSo10NetServiceC4with_tF">stream(with:)</a>
  181. </li>
  182. <li class="nav-group-task">
  183. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire6streamAA13StreamRequestCSS12withHostName_Si4porttF">stream(withHostName:port:)</a>
  184. </li>
  185. <li class="nav-group-task">
  186. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire6uploadAA13UploadRequestC10Foundation3URLV_AA14URLConvertible_p2toAA10HTTPMethodO6methods10DictionaryVyS2SGSg7headerstF">upload(_:to:method:headers:)</a>
  187. </li>
  188. <li class="nav-group-task">
  189. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire6uploadAA13UploadRequestC10Foundation4DataV_AA14URLConvertible_p2toAA10HTTPMethodO6methods10DictionaryVyS2SGSg7headerstF">upload(_:to:method:headers:)</a>
  190. </li>
  191. <li class="nav-group-task">
  192. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire6uploadAA13UploadRequestCSo11InputStreamC_AA14URLConvertible_p2toAA10HTTPMethodO6methods10DictionaryVyS2SGSg7headerstF">upload(_:to:method:headers:)</a>
  193. </li>
  194. <li class="nav-group-task">
  195. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire6uploadAA13UploadRequestC10Foundation3URLV_AA21URLRequestConvertible_p4withtF">upload(_:with:)</a>
  196. </li>
  197. <li class="nav-group-task">
  198. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire6uploadAA13UploadRequestC10Foundation4DataV_AA21URLRequestConvertible_p4withtF">upload(_:with:)</a>
  199. </li>
  200. <li class="nav-group-task">
  201. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire6uploadAA13UploadRequestCSo11InputStreamC_AA21URLRequestConvertible_p4withtF">upload(_:with:)</a>
  202. </li>
  203. <li class="nav-group-task">
  204. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire6uploadyyAA17MultipartFormDataCc09multipartdE0_s6UInt64V14usingThresholdAA14URLConvertible_p2toAA10HTTPMethodO6methods10DictionaryVyS2SGSg7headersyAA14SessionManagerC0cdE14EncodingResultOcSg18encodingCompletiontF">upload(multipartFormData:usingThreshold:to:method:headers:encodingCompletion:)</a>
  205. </li>
  206. <li class="nav-group-task">
  207. <a class="nav-group-task-link" href="../Functions.html#/s:9Alamofire6uploadyyAA17MultipartFormDataCc09multipartdE0_s6UInt64V14usingThresholdAA21URLRequestConvertible_p4withyAA14SessionManagerC0cdE14EncodingResultOcSg18encodingCompletiontF">upload(multipartFormData:usingThreshold:with:encodingCompletion:)</a>
  208. </li>
  209. </ul>
  210. </li>
  211. <li class="nav-group-name">
  212. <a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
  213. <ul class="nav-group-tasks">
  214. <li class="nav-group-task">
  215. <a class="nav-group-task-link" href="../Protocols/DataResponseSerializerProtocol.html">DataResponseSerializerProtocol</a>
  216. </li>
  217. <li class="nav-group-task">
  218. <a class="nav-group-task-link" href="../Protocols/DownloadResponseSerializerProtocol.html">DownloadResponseSerializerProtocol</a>
  219. </li>
  220. <li class="nav-group-task">
  221. <a class="nav-group-task-link" href="../Protocols/ParameterEncoding.html">ParameterEncoding</a>
  222. </li>
  223. <li class="nav-group-task">
  224. <a class="nav-group-task-link" href="../Protocols/RequestAdapter.html">RequestAdapter</a>
  225. </li>
  226. <li class="nav-group-task">
  227. <a class="nav-group-task-link" href="../Protocols/RequestRetrier.html">RequestRetrier</a>
  228. </li>
  229. <li class="nav-group-task">
  230. <a class="nav-group-task-link" href="../Protocols/URLConvertible.html">URLConvertible</a>
  231. </li>
  232. <li class="nav-group-task">
  233. <a class="nav-group-task-link" href="../Protocols/URLRequestConvertible.html">URLRequestConvertible</a>
  234. </li>
  235. </ul>
  236. </li>
  237. <li class="nav-group-name">
  238. <a class="nav-group-name-link" href="../Structs.html">Structures</a>
  239. <ul class="nav-group-tasks">
  240. <li class="nav-group-task">
  241. <a class="nav-group-task-link" href="../Structs/DataResponse.html">DataResponse</a>
  242. </li>
  243. <li class="nav-group-task">
  244. <a class="nav-group-task-link" href="../Structs/DataResponseSerializer.html">DataResponseSerializer</a>
  245. </li>
  246. <li class="nav-group-task">
  247. <a class="nav-group-task-link" href="../Structs/DefaultDataResponse.html">DefaultDataResponse</a>
  248. </li>
  249. <li class="nav-group-task">
  250. <a class="nav-group-task-link" href="../Structs/DefaultDownloadResponse.html">DefaultDownloadResponse</a>
  251. </li>
  252. <li class="nav-group-task">
  253. <a class="nav-group-task-link" href="../Structs/DownloadResponse.html">DownloadResponse</a>
  254. </li>
  255. <li class="nav-group-task">
  256. <a class="nav-group-task-link" href="../Structs/DownloadResponseSerializer.html">DownloadResponseSerializer</a>
  257. </li>
  258. <li class="nav-group-task">
  259. <a class="nav-group-task-link" href="../Structs/JSONEncoding.html">JSONEncoding</a>
  260. </li>
  261. <li class="nav-group-task">
  262. <a class="nav-group-task-link" href="../Structs/PropertyListEncoding.html">PropertyListEncoding</a>
  263. </li>
  264. <li class="nav-group-task">
  265. <a class="nav-group-task-link" href="../Structs/Timeline.html">Timeline</a>
  266. </li>
  267. <li class="nav-group-task">
  268. <a class="nav-group-task-link" href="../Structs/URLEncoding.html">URLEncoding</a>
  269. </li>
  270. <li class="nav-group-task">
  271. <a class="nav-group-task-link" href="../Structs/URLEncoding/Destination.html">– Destination</a>
  272. </li>
  273. </ul>
  274. </li>
  275. <li class="nav-group-name">
  276. <a class="nav-group-name-link" href="../Typealiases.html">Type Aliases</a>
  277. <ul class="nav-group-tasks">
  278. <li class="nav-group-task">
  279. <a class="nav-group-task-link" href="../Typealiases.html#/s:9Alamofire11HTTPHeadersa">HTTPHeaders</a>
  280. </li>
  281. <li class="nav-group-task">
  282. <a class="nav-group-task-link" href="../Typealiases.html#/s:9Alamofire10Parametersa">Parameters</a>
  283. </li>
  284. <li class="nav-group-task">
  285. <a class="nav-group-task-link" href="../Typealiases.html#/s:9Alamofire22RequestRetryCompletiona">RequestRetryCompletion</a>
  286. </li>
  287. </ul>
  288. </li>
  289. </ul>
  290. </nav>
  291. <article class="main-content">
  292. <section class="section">
  293. <div class="section-content">
  294. <h1>RequestRetrier</h1>
  295. <div class="declaration">
  296. <div class="language">
  297. <pre class="highlight"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">RequestRetrier</span></code></pre>
  298. </div>
  299. </div>
  300. <p>A type that determines whether a request should be retried after being executed by the specified session manager
  301. and encountering an error.</p>
  302. </div>
  303. </section>
  304. <section class="section">
  305. <div class="section-content">
  306. <div class="task-group">
  307. <ul class="item-container">
  308. <li class="item">
  309. <div>
  310. <code>
  311. <a name="/s:9Alamofire14RequestRetrierP6shouldyAA14SessionManagerC_AA0B0C5retrys5Error_p4withySb_Sdtc10completiontF"></a>
  312. <a name="//apple_ref/swift/Method/should(_:retry:with:completion:)" class="dashAnchor"></a>
  313. <a class="token" href="#/s:9Alamofire14RequestRetrierP6shouldyAA14SessionManagerC_AA0B0C5retrys5Error_p4withySb_Sdtc10completiontF">should(_:retry:with:completion:)</a>
  314. </code>
  315. </div>
  316. <div class="height-container">
  317. <div class="pointer-container"></div>
  318. <section class="section">
  319. <div class="pointer"></div>
  320. <div class="abstract">
  321. <p>Determines whether the <code><a href="../Classes/Request.html">Request</a></code> should be retried by calling the <code>completion</code> closure.</p>
  322. <p>This operation is fully asynchronous. Any amount of time can be taken to determine whether the request needs
  323. to be retried. The one requirement is that the completion closure is called to ensure the request is properly
  324. cleaned up after.</p>
  325. </div>
  326. <div class="declaration">
  327. <h4>Declaration</h4>
  328. <div class="language">
  329. <p class="aside-title">Swift</p>
  330. <pre class="highlight"><code><span class="kd">func</span> <span class="nf">should</span><span class="p">(</span><span class="n">_</span> <span class="nv">manager</span><span class="p">:</span> <span class="kt"><a href="../Classes/SessionManager.html">SessionManager</a></span><span class="p">,</span> <span class="n">retry</span> <span class="nv">request</span><span class="p">:</span> <span class="kt"><a href="../Classes/Request.html">Request</a></span><span class="p">,</span> <span class="n">with</span> <span class="nv">error</span><span class="p">:</span> <span class="kt">Error</span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kd">@escaping</span> <span class="kt"><a href="../Typealiases.html#/s:9Alamofire22RequestRetryCompletiona">RequestRetryCompletion</a></span><span class="p">)</span></code></pre>
  331. </div>
  332. </div>
  333. <div>
  334. <h4>Parameters</h4>
  335. <table class="graybox">
  336. <tbody>
  337. <tr>
  338. <td>
  339. <code>
  340. <em>manager</em>
  341. </code>
  342. </td>
  343. <td>
  344. <div>
  345. <p>The session manager the request was executed on.</p>
  346. </div>
  347. </td>
  348. </tr>
  349. <tr>
  350. <td>
  351. <code>
  352. <em>request</em>
  353. </code>
  354. </td>
  355. <td>
  356. <div>
  357. <p>The request that failed due to the encountered error.</p>
  358. </div>
  359. </td>
  360. </tr>
  361. <tr>
  362. <td>
  363. <code>
  364. <em>error</em>
  365. </code>
  366. </td>
  367. <td>
  368. <div>
  369. <p>The error encountered when executing the request.</p>
  370. </div>
  371. </td>
  372. </tr>
  373. <tr>
  374. <td>
  375. <code>
  376. <em>completion</em>
  377. </code>
  378. </td>
  379. <td>
  380. <div>
  381. <p>The completion closure to be executed when retry decision has been determined.</p>
  382. </div>
  383. </td>
  384. </tr>
  385. </tbody>
  386. </table>
  387. </div>
  388. </section>
  389. </div>
  390. </li>
  391. </ul>
  392. </div>
  393. </div>
  394. </section>
  395. </article>
  396. </div>
  397. <section class="footer">
  398. <p>&copy; 2017 <a class="link" href="http://alamofire.org/" target="_blank" rel="external">Alamofire Software Foundation</a>. All rights reserved. (Last updated: 2017-12-03)</p>
  399. <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
  400. </section>
  401. </body>
  402. </div>
  403. </html>