当前位置: 首页 > 知识库问答 >
问题:

在Swift3中发送JSON POST请求

闻人业
2023-03-14
{ 
 "Password":"123456",   
 "Email":"test@gmail.com"
}
let dict = ["Email": "test@gmail.com", "Password":"123456"] as [String: Any]
if let jsonData = try? JSONSerialization.data(withJSONObject: dict, options: []) {


    let url = NSURL(string: "http://xxxxxxxxx.net/api/Login")!
    let request = NSMutableURLRequest(url: url as URL)
    request.httpMethod = "POST"

    request.httpBody = jsonData

    let task = URLSession.shared.dataTask(with: request as URLRequest){ data,response,error in
        if error != nil{
           print(error?.localizedDescription)
           return
        }

        do {
            let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary

            if let parseJSON = json {
                   let resultValue:String = parseJSON["success"] as! String;
                   print("result: \(resultValue)")
                   print(parseJSON)
                   }
            } catch let error as NSError {
                 print(error)
            }        
       }          
     task.resume()
    }

我得到以下错误

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

响应数据为空。我做错了什么,或者我在代码中遗漏了什么?

共有1个答案

毛胜
2023-03-14

尝试两件事:

第一:

jsonData = try? JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted)

然后,如果您的数据被转换为JSON,则添加日志。将数据转换为字符串并打印值。

request.addValue("application/json", forHTTPHeaderField: "Content-Type")
 类似资料:
  • 问题内容: 我正在尝试使用node.js将http请求发送到neo4j数据库。这是我正在使用的代码: 我检查数据库是否正在运行(我已连接到管理网页,并且一切正常。)恐怕问题不在数据库方面,而在node.js方面。 我希望有人可以对此问题有所启发。我想学习如何在node.js中发送http请求,答案不必特定于neo4j问题。 提前致谢 问题答案: 如果是简单的GET请求,则应使用 否则,需要关闭。

  • 问题内容: 我们正在使用AngularJS和Java Servlet开发RESTful Web服务。当用户登录时,我们的后端会向前端发送一个“ Set-Cookie”标头。在Angular中,我们通过(ngCookie-module)访问标头并进行设置。 现在,用户已登录,他可以例如删除一些东西。因此,前端将GET请求发送到后端。因为我们在不同的域上工作,所以我们需要设置一些CORS标头,并且An

  • 我需要在andoid应用程序发送超文本传输协议获取请求。 清单 然后我按下发送请求按钮,应用程序崩溃。 日志 2020-06-08 13:37:58.8327039-7039/com。实例远程E/AndroidRuntime:致命异常:主进程:com。实例远程,PID:7039 java。lang.IllegalStateException:无法在androidx上为android:onClick

  • 发送请求 发送同步请求 Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/ Web3ClientVersion web3ClientVersion = web3.web3ClientVersion().send(); String clientVersion = web3Client

  • 问题内容: 我正在尝试发出POST请求,但无法完成。另一端什么也没收到。 这是应该如何工作的吗?我知道该功能,但我想我不能使用它,因为它不能用测试,对吗? 问题答案: 您基本上有正确的想法,只是发送错误的表格。该表格属于请求的正文。

  • 问题内容: 在Java中,如何编写HTTP请求消息并将其发送到HTTP WebServer? 问题答案: 你可以使用。 示例(从此处开始),进行了改进。包括在链接腐烂的情况下: