向服务器发出发布请求时出现 Json 错误

Posted

技术标签:

【中文标题】向服务器发出发布请求时出现 Json 错误【英文标题】:Json error when making post request to server 【发布时间】:2017-02-12 20:28:56 【问题描述】:

经过数小时搜索堆栈并查看类似问题后,我仍然无法使其正常工作。请帮助指导我!

我要做的就是向我的服务器提交一个用户名并将其保存在 mysql 中 - 只是为了让它工作......

我可以将用户名发送到服务器,甚至可以将硬编码的数据返回给 ios 模拟器以设置标签的文本,但是一旦我添加了将数据保存到 MySQL 的函数,我就会收到错误: "Error Domain=NSCocoaErrorDomain Code=3840 "字符 0 周围的值无效。" UserInfo=NSDebugDescription=字符 0 周围的值无效。"

对不起,奇怪的命名约定,我偏离了我所遵循的教程。谢谢!

SWIFT 3:

func Apitest(name: String) 

    let json = ["user" : name]

    do 
        let jsonData = try JSONSerialization.data(withJSONObject: json, options: .prettyPrinted)

        let url = NSURL(string: "I put the actual path here, don't worry")!
        let request = NSMutableURLRequest(url: url as URL)
        request.httpMethod = "POST"

        request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
        request.httpBody = jsonData

        let task = URLSession.shared.dataTask(with: request as URLRequest) data, response, error in
            if error != nil
                print("First Error -> \(error)")
                return
            
            do 
                let result = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String:AnyObject]
                print("Result -> \(result!)")

                let label = result?["messages"] as! String

                print(label)

                self.setupLabel(text: label)

             catch 
                print("Second Error -> \(error)")
            
        

        task.resume()
     catch 
        print(error)
    

API 代码(python/flask)

@app.route('/api/get_messages/') methods=['POST'])
def get_messages():
json = request.get_json()

api_test(json['user'])

return jsonify('messages':json['user'])

MySQL函数:

def api_test(user):
c, conn = connection()
c.execute("INSERT INTO users (email) VALUES (%s)", (user))
conn.commit()
conn.close()
c.close()

【问题讨论】:

【参考方案1】:

通过查看您的代码,我会说您的插入命令应该是:

c.execute("INSERT INTO users (email) VALUES (%s)", (user))

【讨论】:

抱歉,原来是这样。我没有粘贴那行,是我输入的。

以上是关于向服务器发出发布请求时出现 Json 错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Express.js 上使用 Axios 向 Spotify API 发出 POST 请求时出现错误 400

向 SWR 发出请求时出现打字稿问题

发出 POST 请求时出现 Google Cloud Function CORS 错误

Flutter Web,向具有自签名证书的服务器发出请求时出现问题

使用 Go 向 APNS 发出推送请求时出现 403 禁止错误。我是不是正确创建了 JWT?

向 Spotify API 发出 PUT 请求时出现 401 错误