2017-02-25 25 views
0

理想的情況下,我期待我的absoluteURL打印Swift3,無法定義與查詢參數的URL

http://my-MacBook-Pro.local:8080/apis/v2/Driver/driverDetails?domain=123&driver=12&mykey=8908098

this博客

但由於某些原因,我不能獲取正確定義的完整網址。

代碼

var urlComponents = URLComponents(string : fullURL)! 
     for key in getData.allKeys { 
      let valueOfKey : String = getData.value(forKey: key as! String) as! String 
      print(key as! String + ":" + valueOfKey) 
      urlComponents.queryItems?.append(URLQueryItem(name: key as! String, value : valueOfKey)) 
      //getData.value(forKey: key as! String) as! String?)) 
     } 

     print("fullurl ->"+urlComponents.url!.debugDescription) 

電流輸出

域:123驅動器:12的myKey:8908098

fullurl->http://my-MacBook-Pro.local:8080/apis/v2/Driver/driverDetails

回答

1

urlComponents.queryItems最初將是nil,所以urlComponents.queryItems?.append不會做任何事情。在下一次迭代中,它仍然是nil,所以再次追加不會發生,依此類推。

你需要建立自己的URLQueryItem陣列,只是爲它分配一旦你完成:

var urlComponents = URLComponents(string : fullURL)! 
var queryItems = [URLQueryItem]() 

for key in getData.allKeys { 
    let valueOfKey = getData.value(forKey: key as! String) as! String 
    queryItems.append(URLQueryItem(name: key as! String, value : valueOfKey)) 
} 

urlComponents.queryItems = queryItems 
print("fullurl ->"+urlComponents.url!.debugDescription) 
+0

中超,工作完美..感謝 – Siddharth

+0

你真的應該看看你'getData'結構;不應該需要這麼多的強制鑄造。 – Paulw11

+0

一旦我得到這個工作始終如一,我會重構。現在,所有這一切都與這個斯威夫特胡說八道。 1.儘管模擬器上的safari可以達到它,但http url不會到達我的localhost tomcat。 2.這個特定的代碼只是在'let valueOfKey ='行中'Test Succeeded'。根本不執行其餘的行。瘋狂,它工作了兩次,現在它只是崩潰我想,留下一個日誌文件充滿了無法讀懂的廢話.. :) – Siddharth