2017-11-28 13 views
0

私は間違っていた場所を見つけることができません。私はすべての可能な解決策を試みましたが、何も動作していないようです。 誰かが私が間違っている場所を提案することはできますか? 私のコードは以下の通りです:Alamofire AFError invalidURL

var diaryEntryUrl = "http://myUrl?uid=10001&diary_text=\(textPrint)&location=\(loactionAddrEnc)" 
// var diaryEntryUrl = diaryEntryUrlEncode.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) --- tried encoding, but didn't work 

let postParameters:[String: Any] = [ "imagesName": self.awsImageArray2, "tagsList": self.tagArray] 

    Alamofire.request(diaryEntryUrl, method: .post, parameters: postParameters, encoding: JSONEncoding.default, headers: [:]).responseJSON { 
     response in 
     if response.result.isSuccess{ 

      print("SuccessFully Added") 

     }else{ 
      print("Error \(String(describing: response.result.error))") 

    } 
} 

私も文章をコードしているが、それでもエラーがthere.Iは以下のようにそれをやっている試みた:

loactionAddrEnc = loactionAddr.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) 
var textPrint = diaryEntryText.text.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) 

を私はfollwingエラーを取得しています:

error image

答えて

0

ログOptionalには、場所と日記のテキストがあります。つまり、最初にアンラップする必要があるということです。

if let textPrint = textPrint, let loactionAddrEnc = loactionAddrEnc { 
    var diaryEntryUrl = "http://myUrl?uid=10001&diary_text=\(textPrint)&location=\(loactionAddrEnc)" 
    // rest of your code 
} 

これは問題を解決するはずです。しかし、別の方法があります。

すべてのクエリパラメータをpostParametersに渡すことができます。

var diaryEntryUrl = "http://myUrl" 
var postParameters:[String: Any] = [ "imagesName": self.awsImageArray2, "tagsList": self.tagArray] 
postParameters["uid"] = "10001" 
if let textPrint = textPrint { 
    postParameters["diary_text"] = textPrint 
} 

if let loactionAddrEnc = loactionAddrEnc { 
    postParameters["location"] = loactionAddrEnc 
} 

Alamofire.request(diaryEntryUrl, method: .post, parameters: postParameters, encoding: JSONEncoding.default, headers: [:]).responseJSON { 
    response in 
    if response.result.isSuccess { 

     print("SuccessFully Added") 

    }else{ 
     print("Error \(String(describing: response.result.error))") 

}