Qiita의 API를 부를 때 끝에 슬래시를 붙이면 http://~로 리디렉션되므로 조심합시다.
TL;DR
제목대로. curl 결과는 여기 .
iOS 향수 오류
예전에 보았던 오류에 근거한 박자를 만났습니다
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
이것은 메시지처럼 HTTP 통신을 시도할 때 iOS가 차단하는 사람입니다.
Qiita의 API를 호출하려고했습니다.
URLSession
에 건네주고 있는 url는 확실히 https의 것……
let url = URL(string: "https://qiita.com/api/v2/items/?per_page=3")!
let task = urlSession.dataTask(with: url) { data, response, error in
...
오류 메시지를 확인해 봅니다.
- Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection." UserInfo={NSUnderlyingError=0x6000007b4b40 {Error Domain=kCFErrorDomainCFNetwork Code=-1022 "(null)"}, NSErrorFailingURLStringKey=http://qiita.com/api/v2/items, NSErrorFailingURLKey=http://qiita.com/api/v2/items, NSLocalizedDescription=The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.}
? !
NSErrorFailingURLKey=http://qiita.com/api/v2/items?per_page=3
왜 그런지 모르겠지만 URL 체계가 http로 바뀌 었습니까? ? ?
그리고 로컬 호스트에 연결할 때와 마찬가지로 App Transport Security Settings의 Allow Arbitrary Loads를 YES로 설정하면 문제없이 결과가 반환되었습니다.
범인은…
한 시간 동안 빠진 뒤 마침내 범인이 발견되었습니다. 1
let url = URL(string: "https://qiita.com/api/v2/items/?per_page=3")!
잘 보면, URL의 말미에 슬래시가 붙어 있다…
그래? 하지만 이 URL을 curl로 두드려도 평소에 응답이 돌아온 것 같은?
다시 curl로 두드려 보았다.
$ curl -D - https://qiita.com/api/v2/items/
HTTP/2 301
date: Tue, 15 Sep 2020 12:45:32 GMT
content-type: text/html
content-length: 178
location: http://qiita.com/api/v2/items
server: nginx
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
? !
왜 http로 리디렉션되었습니다 2
Qiita API를 사용할 때는 후행 슬래시에주의하십시오.
결론이었습니다
let url = URL(string: "https://qiita.com/api/v2/items?per_page=3")!
만일 같은 현상에 조우한 사람이 있으면, 여기에 도착할 수 있도록.
릴리스 전의 개발에서는 지금도 잘 볼지도 모르겠네요. 3
당초는 macOS의 프로젝트에서 시험하고 있었기 때문에, 평소 만지지 않는 샌드 박스의 설정 등을 의심하고 있었기 때문에, 어색해 버렸습니다. ↩
그러고 보면 조사의 도중에 curl 사용할 때에는 무의식적으로 -L옵션을 붙이고 있던 것 같은……
Reference
이 문제에 관하여(Qiita의 API를 부를 때 끝에 슬래시를 붙이면 http://~로 리디렉션되므로 조심합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/turara/items/67f80780ee00ed4ec2d7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
예전에 보았던 오류에 근거한 박자를 만났습니다
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
이것은 메시지처럼 HTTP 통신을 시도할 때 iOS가 차단하는 사람입니다.
Qiita의 API를 호출하려고했습니다.
URLSession
에 건네주고 있는 url는 확실히 https의 것……
let url = URL(string: "https://qiita.com/api/v2/items/?per_page=3")!
let task = urlSession.dataTask(with: url) { data, response, error in
...
오류 메시지를 확인해 봅니다.
- Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection." UserInfo={NSUnderlyingError=0x6000007b4b40 {Error Domain=kCFErrorDomainCFNetwork Code=-1022 "(null)"}, NSErrorFailingURLStringKey=http://qiita.com/api/v2/items, NSErrorFailingURLKey=http://qiita.com/api/v2/items, NSLocalizedDescription=The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.}
? !
NSErrorFailingURLKey=http://qiita.com/api/v2/items?per_page=3
왜 그런지 모르겠지만 URL 체계가 http로 바뀌 었습니까? ? ?
그리고 로컬 호스트에 연결할 때와 마찬가지로 App Transport Security Settings의 Allow Arbitrary Loads를 YES로 설정하면 문제없이 결과가 반환되었습니다.
범인은…
한 시간 동안 빠진 뒤 마침내 범인이 발견되었습니다. 1
let url = URL(string: "https://qiita.com/api/v2/items/?per_page=3")!
잘 보면, URL의 말미에 슬래시가 붙어 있다…
그래? 하지만 이 URL을 curl로 두드려도 평소에 응답이 돌아온 것 같은?
다시 curl로 두드려 보았다.
$ curl -D - https://qiita.com/api/v2/items/
HTTP/2 301
date: Tue, 15 Sep 2020 12:45:32 GMT
content-type: text/html
content-length: 178
location: http://qiita.com/api/v2/items
server: nginx
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
? !
왜 http로 리디렉션되었습니다 2
Qiita API를 사용할 때는 후행 슬래시에주의하십시오.
결론이었습니다
let url = URL(string: "https://qiita.com/api/v2/items?per_page=3")!
만일 같은 현상에 조우한 사람이 있으면, 여기에 도착할 수 있도록.
릴리스 전의 개발에서는 지금도 잘 볼지도 모르겠네요. 3
당초는 macOS의 프로젝트에서 시험하고 있었기 때문에, 평소 만지지 않는 샌드 박스의 설정 등을 의심하고 있었기 때문에, 어색해 버렸습니다. ↩
그러고 보면 조사의 도중에 curl 사용할 때에는 무의식적으로 -L옵션을 붙이고 있던 것 같은……
Reference
이 문제에 관하여(Qiita의 API를 부를 때 끝에 슬래시를 붙이면 http://~로 리디렉션되므로 조심합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/turara/items/67f80780ee00ed4ec2d7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
let url = URL(string: "https://qiita.com/api/v2/items/?per_page=3")!
let task = urlSession.dataTask(with: url) { data, response, error in
...
- Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection." UserInfo={NSUnderlyingError=0x6000007b4b40 {Error Domain=kCFErrorDomainCFNetwork Code=-1022 "(null)"}, NSErrorFailingURLStringKey=http://qiita.com/api/v2/items, NSErrorFailingURLKey=http://qiita.com/api/v2/items, NSLocalizedDescription=The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.}
? !
NSErrorFailingURLKey=http://qiita.com/api/v2/items?per_page=3
왜 그런지 모르겠지만 URL 체계가 http로 바뀌 었습니까? ? ?
그리고 로컬 호스트에 연결할 때와 마찬가지로 App Transport Security Settings의 Allow Arbitrary Loads를 YES로 설정하면 문제없이 결과가 반환되었습니다.
범인은…
한 시간 동안 빠진 뒤 마침내 범인이 발견되었습니다. 1
let url = URL(string: "https://qiita.com/api/v2/items/?per_page=3")!
잘 보면, URL의 말미에 슬래시가 붙어 있다…
그래? 하지만 이 URL을 curl로 두드려도 평소에 응답이 돌아온 것 같은?
다시 curl로 두드려 보았다.
$ curl -D - https://qiita.com/api/v2/items/
HTTP/2 301
date: Tue, 15 Sep 2020 12:45:32 GMT
content-type: text/html
content-length: 178
location: http://qiita.com/api/v2/items
server: nginx
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
? !
왜 http로 리디렉션되었습니다 2
Qiita API를 사용할 때는 후행 슬래시에주의하십시오.
결론이었습니다
let url = URL(string: "https://qiita.com/api/v2/items?per_page=3")!
만일 같은 현상에 조우한 사람이 있으면, 여기에 도착할 수 있도록.
릴리스 전의 개발에서는 지금도 잘 볼지도 모르겠네요. 3
당초는 macOS의 프로젝트에서 시험하고 있었기 때문에, 평소 만지지 않는 샌드 박스의 설정 등을 의심하고 있었기 때문에, 어색해 버렸습니다. ↩
그러고 보면 조사의 도중에 curl 사용할 때에는 무의식적으로 -L옵션을 붙이고 있던 것 같은……
Reference
이 문제에 관하여(Qiita의 API를 부를 때 끝에 슬래시를 붙이면 http://~로 리디렉션되므로 조심합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/turara/items/67f80780ee00ed4ec2d7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
let url = URL(string: "https://qiita.com/api/v2/items/?per_page=3")!
$ curl -D - https://qiita.com/api/v2/items/
HTTP/2 301
date: Tue, 15 Sep 2020 12:45:32 GMT
content-type: text/html
content-length: 178
location: http://qiita.com/api/v2/items
server: nginx
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
? !
왜 http로 리디렉션되었습니다 2
Qiita API를 사용할 때는 후행 슬래시에주의하십시오.
결론이었습니다
let url = URL(string: "https://qiita.com/api/v2/items?per_page=3")!
만일 같은 현상에 조우한 사람이 있으면, 여기에 도착할 수 있도록.
릴리스 전의 개발에서는 지금도 잘 볼지도 모르겠네요. 3
당초는 macOS의 프로젝트에서 시험하고 있었기 때문에, 평소 만지지 않는 샌드 박스의 설정 등을 의심하고 있었기 때문에, 어색해 버렸습니다. ↩
그러고 보면 조사의 도중에 curl 사용할 때에는 무의식적으로 -L옵션을 붙이고 있던 것 같은……
Reference
이 문제에 관하여(Qiita의 API를 부를 때 끝에 슬래시를 붙이면 http://~로 리디렉션되므로 조심합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/turara/items/67f80780ee00ed4ec2d7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
let url = URL(string: "https://qiita.com/api/v2/items?per_page=3")!
Reference
이 문제에 관하여(Qiita의 API를 부를 때 끝에 슬래시를 붙이면 http://~로 리디렉션되므로 조심합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/turara/items/67f80780ee00ed4ec2d7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)