2017-02-25 3 views
0

混乱したエラーが発生します。 そのほぼ迅速なデータ型です。 私のネットワークのデモがあります:エラー:サーバーに迅速なエラータイプを修正する方法

func initRequst(HttpType: httpType,content:String,dic:Dictionary<String,Any>){ 
     let data = try! JSONSerialization.data(withJSONObject: dic, options: .prettyPrinted) 
     print(data) 
     switch HttpType { 
     case .post: 
      url = URL.init(string: "http://localhost:5000/" + content) 
      req = NSMutableURLRequest.init(url: url!) 
      req?.httpMethod = "POST" 
      req?.httpBody = data 
     case .get: 
      url = URL.init(string: "http://localhost:5000/" + content) 
      req = NSMutableURLRequest.init(url: url!) 
      req?.httpBody = data 
      req?.httpMethod = "GET" 
     } 
    } 

そして、私のフラスコサーバーがエラーとデモが受けているされています

TypeError: 'NoneType' object is not subscriptable 

@app.route('/userLogin',methods=["GET"]) 
    def userLogin(): 
     get_username = request.json['username'] 
     get_password = request.json['password'] 
     return jsonify({"uerId":databasePort.checkUserInformation(get_username,get_password)}) 

迅速なデータがそれをidentified.How修正することがされていないタイプを送っているようですが?ありがとう!

+0

私はすでにそれを修正しました。問題は、request.json [....]は私のjsonデータを受け取ることができないので、私はfinally.itsの代わりにrequest.formを使用します。 –

+0

私はあなたが本当に問題を解決したとは思わない、あなたは代わりにそれを回避した。適切な解決策は、私の答えに示されているように 'Content-Type'ヘッダを' application/json'に設定することです。 – mhawke

答えて

0

Content-Typeヘッダーをapplication/jsonに設定してから、Swiftでリクエストを送信してみてください。それ以外の場合は、それが割り当てられます形式の符号化データを想定し、着信要求がJSONにコンテンツタイプを設定する場合にのみ

req.setValue("application/json", forHTTPHeaderField: "Content-Type") 

フラスコrequest.jsonを設定します。その後、フラスコを、それをデコードし、要求のjson属性に割り当てしようとしrequest.form

+0

ありがとう!なぜ私はカールテストを使用して私のサーバーがうまく動作しているが、 –

関連する問題