API ń dáhùn nínú Safari lórí fọ́nù kan náà, nígbà tí ìbéèrè ùfọ̀nà náà ń parí ní àkókò. Ìyàtọ̀ yìí kì í sábà jẹ́ ihò: ùfọ̀nà tí ń pe iṣẹ́ inú ń ṣe ìbéèrè HTTPS lasan, VPN tí ó ti wà lórí ẹ̀rọ náà ń pinnu nìkan bóyá ìbéèrè yẹn ní ọ̀nà. Kíkọ ihò kejì sínú ùfọ̀nà jẹ́ ìpinnu ọjà, kì í ṣe àtúnṣe fún àkókò píparí. Èyí tí ó tẹ̀le ń ṣe ìpín ìkùnà nípa ibi tí ó ti ṣẹlẹ̀, ní lílo ojú-àṣìṣe tí ùfọ̀nà ti ní tẹ́lẹ̀.

Bẹ̀rẹ̀ láti àṣìṣe, kì í ṣe láti ihò

URLSession ń ròyìn àwọn ìkùnà gbígbe bí NSError àwọn iye nínú NSURLErrorDomain, kóòdù sì ni ẹ̀rí tí ó kéré jùlọ tí ó wà. Kí o tó yí ètò kankan padà, ṣe àkọsílẹ̀ kóòdù yẹn pẹ̀lú orúkọ agbàlejò tí ó kùnà àti àkókò tí iṣẹ́ náà ti kọjá. Àkókò píparí, ìkùnà orúkọ àti ìkùnà ìgbẹ́kẹ̀lé ń yàtọ̀ síra bákan náà lórí ojú-ìwé, wọ́n sì nílò àtúnṣe mẹ́ta tí ó yàtọ̀. Ṣe ìpín kí àkọ́kọ́, lẹ́yìn náà ka abala fún ẹ̀ka yẹn.

Àwọn ìwọ̀n iṣẹ́ ń dáhùn ìbéèrè tí ó tẹ̀le, bóyá wọ́n ti dá ìsopọ̀ kan sílẹ̀ rí, èyí tí ó ya ìbéèrè tí kò ní ọ̀nà rí látara èyí tí olùpèsè náà pẹ́ jù láti dáhùn. Kò sí ọ̀kan nínú ìwọ̀nyí tí ó nílò yíyí ihò padà; ó nílò kíkọ àyẹ̀wò ìbéèrè fúnra rẹ̀ sí ibi tí o lè kà á.

Ìpinnu orúkọ ń kùnà kí ohunkóhun mìíràn tó lè ṣẹlẹ̀

Orúkọ ọ́fíìsì kúkúrú bí api.corp.example sábà dúró lórí ìkànnì wíwá tí fọ́nù kò ní, nítorí náà ùfọ̀nà ń yanjú orúkọ tí ó wà nínú ilé nìkan. NSURLErrorCannotFindHost ni ìbùwọ́ rẹ̀. Gbogbo orúkọ agbàlejò gbọ́dọ̀ yanjú nípasẹ̀ olùyanjú èyíkéyí tí VPN fi sórí ẹ̀rọ, ùfọ̀nà sì gbọ́dọ̀ béèrè fọ́ọ̀mù tí ó tó yẹ ní kíkún nígbàkigbà tí ìkànnì wíwá kò bá ní ìdánilójú. Yíyí orúkọ padà sí àdírẹ́sì àti pípa àyẹ̀wò ìwé-ẹ̀rí kúrò ń gbé ìkùnà lọ, kì í ṣe àtúnṣe rẹ̀.

Àkọsílẹ̀ DNS aládàáni àti ìwé-ẹ̀rí tí wọ́n gbé jáde fún orúkọ yẹn gan-an ni bàtà tí wọ́n ń ṣe àtìlẹ́yìn fún. Gbogbo ohun mìíràn ni ọ̀nà àyíká tí ó dé ọ̀dọ̀ àwọn aṣàmúlò.

Àkókò píparí jẹ́ ìbéèrè ọ̀nà, kì í ṣe ìbéèrè orúkọ

NSURLErrorTimedOut túmọ̀ sí pé wọ́n yanjú orúkọ náà, kò sì sí ohun tí ó dáhùn, èyí tí ó tọ́ka sí ipa-ọ̀nà, ìlànà pákẹ́tì tàbí iṣẹ́ náà. Nígbà tí wọ́n bá pín ihò fún ùfọ̀nà kọ̀ọ̀kan, ùfọ̀nà mìíràn tí ó dé olùpèsè kan náà kò sọ ohunkóhun nípa bíldì rẹ, nítorí pé wọn kò pín àwòrán yẹn. Ṣàyẹ̀wò pé àkójọpọ̀ tí o ń ṣiṣẹ́ wà nínú ìpín yẹn, lẹ́yìn náà ṣàyẹ̀wò pé wọ́n gba ọ̀nà iṣẹ́ náà láàyè fún un. Bíldì ìdàgbàsókè tí wọ́n fi sórí ẹ̀rọ ní òde ìpín náà lè wà ní òde ihò pátápátá, yóò sì dà bí API tí ó bàjẹ́.

Ìfiwéra ẹ̀rọ-ìwò ń fi hàn pé ùfọ̀nà kan lórí ẹ̀rọ náà ní ọ̀nà. Kò fi hàn rí pé bíldì rẹ ní ọ̀nà, ìdí nìyẹn tí a gbọ́dọ̀ ṣe àwọn ìdánwò méjèèjì lọ́tọ̀.

Àwọn ìkùnà ìgbẹ́kẹ̀lé ní í ṣe pẹ̀lú orúkọ tí ó wà lórí ìwé-ẹ̀rí

NSURLErrorServerCertificateUntrusted pẹ̀lú àṣìṣe TLS tí ó wà nísàlẹ̀ rẹ̀ túmọ̀ sí pé ìdè tàbí àyẹ̀wò ìdánimọ̀ kùnà. CA inú gbọ́dọ̀ jẹ́ ìgbẹ́kẹ̀lé lórí ẹ̀rọ náà, ìwé-ẹ̀rí tí wọ́n gbé jáde fún orúkọ agbàlejò mìíràn sì ṣì jẹ́ àṣìṣe lẹ́yìn àtúntò nẹ́tíwọ́ọ̀kì èyíkéyí. ìtọ́nisọ́nà App Transport Security ti Apple ń tẹ̀síwájú láti wúlò fún àwọn ìsopọ̀ tí ń gbé URL wọ̀nyí, ihò yíká iṣẹ́ HTTP lasan kò sì jẹ́ kí iṣẹ́ yẹn ní ààbò láti ìparí dé ìparí.

Ṣàtúnṣe ìdánimọ̀ tàbí ibi ìgbẹ́kẹ̀lé kí o sì jẹ́ kí àkọsílẹ̀ ìyàtọ̀ wà ní òfo. Ìyàtọ̀ gbogbogbò fún gbígbé àìlẹ́gbẹ́ ń fi ìkùnà pamọ́ ní àkókò ìdàgbàsókè, ó sì ń fi í sílẹ̀ fún gbogbo aṣàmúlò lẹ́yìn náà.

Ìkọ̀ HTTP jẹ́ ti ùfọ̀nà, kì í ṣe ti nẹ́tíwọ́ọ̀kì

401 tàbí 403 lẹ́yìn ìfọwọ́sowọ́pọ̀ tí ó parí túmọ̀ sí pé ìbéèrè náà dé, iṣẹ́ náà sì kọ̀ ọ́, nítorí náà ìbéèrè tí ó kù ni àkọsílẹ̀, àwọn olùgbọ́ tọ́kẹ̀nì, ìwọ̀n tàbí kọ́kọ́rọ́. Ṣe àkọsílẹ̀ kóòdù ipò àti orúkọ agbàlejò, kì í ṣe tọ́kẹ̀nì olùgbé tàbí ara ìdáhùn rí. Ní àkókò yẹn ihò ń ṣe iṣẹ́ rẹ̀, àwọn ìyípadà nẹ́tíwọ́ọ̀kì mìíràn sì ń dá àtúnṣe gidi dúró.

Tábìlì ni ìpín tí ó yẹ kí o tọ́jú lẹ́gbẹ̀ẹ́ tẹ́mínálì: ìlà kan fún gbogbo ìkùnà tí ùfọ̀nà lè ròyìn gan-an. Tẹ̀ kóòdù náà jáde kí o tó kà á, nítorí ìlà tí o yàn ni yóò pinnu abala tí ìwọ yóò ṣiṣẹ́ lórí.

Where it failsWhat the app seesFirst check
name resolutionNSURLErrorCannotFindHost (-1003)resolve the fully qualified name from the device itself
no path, or no answerNSURLErrorTimedOut (-1001)is this bundle inside the per-app mapping, and is the service path allowed
TLS trustNSURLErrorServerCertificateUntrusted (-1202)does the certificate name match the host, and is the internal CA trusted
service refusalHTTP 401 or 403 after a completed handshakeaccount, token audience, scope or key

Ìlà kọ̀ọ̀kan kéré jùlọ láti dán wò ju èyí tí ó wà nísàlẹ̀ rẹ̀, ọ̀kọ̀ọ̀kan sì ń yọ ìpele tí ó yàtọ̀ kúrò nínú ìbéèrè kan náà. Sọ̀ kalẹ̀ nínú tábìlì náà títí ìlà kan yóò fi bá mu, lẹ́yìn náà dá yíyí nẹ́tíwọ́ọ̀kì dúró.

Àwọn àpilẹ̀kọ tó jọra