2016-12-23 15 views
0

我正在嘗試加載重定向的URL。它工作正常,在Mac OS,但是當我把它用Kitura 1.4服務器Bluemix,斯威夫特3.0.2我得到以下加載錯誤:
The operation could not be completed涉及Swift 3.0.2的重定向URL的問題

這裏是我的相關代碼:

… 
let gShort = URL(string: "https://blabla.bl/blabla")! // Because SO don't want shortened urls in the example 
var request = URLRequest(url: gShort, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 3) 
request.httpMethod = "HEAD" 

let dataTask = URLSession(configuration: URLSessionConfiguration.default) 
    .dataTask(with: request, completionHandler: { data, loadResponse, error in 
     guard let redirected = loadResponse?.url else { 
      … 
     } 
    }) 

dataTask.resume() 

我實際上並不關心迴應;我只想要重定向的網址。這就是爲什麼我需要「HEAD」,但「GET」具有相同的行爲,即在Mac OS上正常工作,但不適用於Bluemix。

我還沒有想出一個解決方法。我不知道這是Swift/Foundation還是Kitura中的錯誤,或者Bluemix是否阻止了重定向的URL。

任何人都知道如何解決這個問題?

+0

據我所知,URLSession的某些部分在Linux上尚不可用。我不是Kitura用戶,但看起來他們有自己的客戶端請求類「ClientRequest」。 – Moritz

回答

2

(這可能已經是一個評論,但我還沒有足夠的聲譽!)

是,重定向的支持又是斯威夫特基金會實施。有一個相關的錯誤報告剛剛打開 - https://bugs.swift.org/browse/SR-2678

+0

謝謝,我這次試着在bugs.swift.org上找到它,但沒有找到任何東西,顯然我需要更好地搜索bug報告。 :) –