2017-08-23 10 views
-1

私は新しいswifterなので、ウェブリクエストをするために迅速に使用するためにいくつかの助けを借りることができます、ありがとう。なぜそれを見直して提出できないのですか?どのように迅速にウェブリクエストをしたのですか

//创建请求体 
    let param = ["moblie":"18392387159"] 

    let data = try! JSONSerialization.data(withJSONObject: param, options: JSONSerialization.WritingOptions.prettyPrinted) 
    var string = "json=" 

    let Str = String(data: data, encoding: String.Encoding(rawValue: String.Encoding.utf8.rawValue)) 
    //拼接 
    string = string + Str! 

    let Url = URL.init(string: "http://huixin.smartdot.com:9901/GoComWebService/restful/GoComeRestful/getResetCode") 

    let request = NSMutableURLRequest.init(url: Url!) 

    request.timeoutInterval = 30 
    //请求方式,跟OC一样的 
    request.httpMethod = "POST" 
    request.httpBody = string.data(using: String.Encoding.utf8) 

    let session = URLSession.shared 
    let dataTask = session.dataTask(with: request as URLRequest) { (data, response, error) -> Void in 
     if (error != nil) { 
      return 
     } 
     else { 
      //此处是具体的解析,具体请移步下面 
      let json: Any = try! JSONSerialization.jsonObject(with: data!, options: []) 
      if let value = JSON(json)["status"].string { 
       print("状态是:\(value)") 
      } 
      print(json) 
     } 
    } 

    dataTask.resume() 

私はこのように書いて、なぜうまくいかなかったのですか?

答えて

0

は、私はあなたが

do { 
    let dic = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.allowFragments) 
    print(dic) 
    } catch { 
     print(error) 
    } 

エラーがここで返さ

でこの問題に対処するために迅速に問題を見つけるのを助けるために私はここにいる、あなたは

データが必須のアンパックをお勧めしません、次のコードを変更示唆します

Error Domain = NSCocoaErrorDomain Code = 3840 "No value." UserInfo = {NSDebugDescription = No value.}

あなたは自分自身をチェックし、問題のパラメータを求めることができる