我正在尝试使用Web API登录Spotify,因为我不需要会话对象。在我的authorize方法中,我需要传入重定向url,但在.GET请求中不接受格式化iOS重定向url的方式。
func authorize() {
// create the url
let url = "https://accounts.spotify.com/authorize"
// parameters
let parameters = ["client_id" : kClientID,
"response_type" : "code",
"redirect_uri" : "spotify-discover-login://callback",
"state" : kState,
"scope" : kScopes]
// response code
var responseCode = 401
Alamofire.request(.GET, url, parameters: parameters, headers: nil)
.responseString{response in
print(response)
switch response.result {
case .Success:
if let response = response.response {
responseCode = response.statusCode
}
case .Failure:
print("fail")
return
}
switch responseCode {
case 200:
print("200")
case 202:
print("@ACCEPTED")
case 400:
print("@BAD REQUEST")
case 401:
print("@AUTH FAIL")
case 403:
print("@FORBIDDEN")
case 1004:
print("@COULD NOT CONNECT")
default: break
}
}
}
更新:
这是Xcode给我的错误:
FAILURE:错误域= NSURLErrorDomain代码= -1002"不支持的网址"
UserInfo = {NSUnderlyingError = 0x7fc89b4677a0 {错误 Domain = kCFErrorDomainCFNetwork Code = -1002"(null)"}, NSErrorFailingURLStringKey = Spotify的-发现登录://回调/代码= AQDKy5g8QOVodDd0kTEmqG-MXKdPmKiPzzSUSfZAY_Nh0J_SW8LYl7s583Pe6mu1kJcHA6Hyudpwhu-FkBXagvFE_Vh8ZVXsSP8sMZvJTikPkdJeV57vgJaL9f6K9QMLfGbIb1XuhqadLP30SGejyDoLGgVoLVtrW_ryWK4KQRwvQKNiitAW9kBDYry6A70i6R7aosFKOQrhswYxhH3Lre0ieBnCt0HrLozp3qQvnk36NKY2Ur2OdI92JOaf4Gk3UmLbrIyjcvUzdeK21tk-bkog9em0x3jJBKgeSAmiFz05ioehlboD9D79uvKPFfnA3hkvfBNFN5dvegiBcRfik7mNebckD2WRABqPyid5Xw8zt092sheCwhuxQDh13-LxGC4WfTlA5ydNrZlwQA5_5JcMQvgZZOA&安培;状态=随机字符串状态下, NSErrorFailingURLKey = Spotify的-发现登录://回调/代码= AQDKy5g8QOVodDd0kTEmqG-MXKdPmKiPzzSUSfZAY_Nh0J_SW8LYl7s583Pe6mu1kJcHA6Hyudpwhu-FkBXagvFE_Vh8ZVXsSP8sMZvJTikPkdJeV57vgJaL9f6K9QMLfGbIb1XuhqadLP30SGejyDoLGgVoLVtrW_ryWK4KQRwvQKNiitAW9kBDYry6A70i6R7aosFKOQrhswYxhH3Lre0ieBnCt0HrLozp3qQvnk36NKY2Ur2OdI92JOaf4Gk3UmLbrIyjcvUzdeK21tk-bkog9em0x3jJBKgeSAmiFz05ioehlboD9D79uvKPFfnA3hkvfBNFN5dvegiBcRfik7mNebckD2WRABqPyid5Xw8zt092sheCwhuxQDh13-LxGC4WfTlA5ydNrZlwQA5_5JcMQvgZZOA&安培;状态=随机字符串状态下, NSLocalizedDescription =不支持的网址}
答案 0 :(得分:4)
NSURLErrorDomain
代码-1002指向NSURLErrorUnsupportedURL
错误。根据{{3}},此错误表示:
NSURLErrorUnsupportedURL
当框架无法处理正确形成的URL时返回。
最可能的原因是URL没有可用的协议处理程序。
适用于iOS 2.0及更高版本。
根据Apple,此错误表示:
"由于URL方案不受支持,连接失败。"
所以你的网址是正确形成的,但是没有协议处理程序知道如何处理" spotify-discover-login"协议。
但当然这是您的自定义网址方案。确保您已在info.plist中正确注册了自定义URL方案并已实施
application:openURL:options:
。请参阅此NSHipster。
作为旁注,您的自定义URL方案名称非常通用。另一个应用程序或Spotify应用程序本身可能现在或将来使用完全相同的方案,这可能会让您在调试时感到头疼。确保方案的独特性,最有可能包括您的应用程序或您公司在计划中的名称,例如" PoKoBros-spotify-discover-login"。
答案 1 :(得分:2)
您可以在此处阅读iOS开发人员的API文档: https://developer.spotify.com/technologies/spotify-ios-sdk/tutorial/
或者这里是Web API开发人员: https://developer.spotify.com/web-api/get-users-profile/
答案 2 :(得分:2)
当您在info.plist文件中没有this时,也会发生这种情况:
解决此问题的步骤:
info.plist
文件NSAppTransportSecurity
的密钥作为Dictionary
。NSAllowsArbitraryLoads
的子项Boolean
并设置
它的值为YES
最后你必须: