Swift 4 で書かれた下記のコードでデータを取得していますが取得がうまくいきません。
ほかのアドレスではデータの取得が出来ますが、下記のアドレスではdata=nilとなりエラーになります。

問題点は2点です(原因は1点かもしれませんが)。

  • dataがnilではないときに「データ抽出」部分が走るはずですが、dataにnilが入っており、正常なデータを取得出来ません。
    if (data != nil && err == nil)としており、その下ではnilではないことが保証されると思うのですが実際にはnil入っている為、エラーになる)
  • data=nilになっており https://trackings.post.japanpost.jp/m/services/srv/search/?requestNo1=123456789012&search=%8AJ%8En とブラウザで打ち込んだときと同等の正しいデータが取得出来ない
        //HTTPリクエスト作成
        let url = URL(string: "https://trackings.post.japanpost.jp/m/services/srv/search/?" +
            "requestNo1=123456789012&search=%8AJ%8En")
        let req = NSMutableURLRequest(url: url!)
        req.httpMethod = "GET"
        var waiting = true
        let task = URLSession.shared.dataTask(with: req as URLRequest , completionHandler: { data, res, err  in
            if (data != nil && err == nil){
                let text = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
                DispatchQueue.main.async(execute: {
                    //データ抽出
                    let arr = text!.components(separatedBy: "お問い合わせ番号")
                    if arr.count == 1 {
                        //有効なデータが帰ってこない場合
                        result = "エラー"
                    } else {
                        result = text! as String
                    }
                    waiting = false
                })
            } else {
                DispatchQueue.main.async(execute: {
                })
            }

        })
        result = result.uppercased()
        task.resume()
        while (waiting) {
            RunLoop.current.run(mode: RunLoopMode.defaultRunLoopMode, before: Date())
        }

        //結果を出力
        print(result)

ご指導のほど、よろしくお願いいたします。

追記

let arr = text!.components(separatedBy: "お問い合わせ番号")のところで、Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional valueとなる。

このときの状態

取得データ