在 http 请求中使用 GET 方法时出现错误域

Alexa289

我是编程新手,现在我正在学习使用 PHP 作为后端服务器构建一个 iOS 应用程序。

据我所知,在http方法中,如果我使用GET方法,就等于在浏览器中写了一个查询。

假设我想发送“id”作为查询项以从服务器获取 JSON 响应,我可以在浏览器中这样写

http:/website.com/post.php?id=23

我使用 PHP 构建我的后端,并捕获该 ID,我在服务器端代码中使用 $_REQUEST(据我所知,$_REQUEST 可以接受 GET 和 POST 方法)。

当我使用浏览器访问该路径时,我可以从服务器获取 JSON 数据响应。

但是,当我尝试使用 GET 方法从我的 iOS 应用程序发送该查询时,出现错误

错误:错误域=NSCocoaErrorDomain 代码=3840“无值”。UserInfo={NSDebugDescription=无值。}

但是当我将该 http 方法更改为 POST 时,它可以无缝地工作。这是当我想在我的 iOS 应用程序中发送请求时激活的方法。我只想获取数据,而不是在数据库中创建新数据。

func loadPost() {
    let id = userInfo!["id"] as! String

    let url = URL(string: "http://localhost/Twitter/post.php")

    var request = URLRequest(url: url!)
    request.httpMethod = "GET" <--- if i change this to POST, it is worked

    let body = "id=\(id)"
    request.httpBody = body.data(using: .utf8)

    let session = URLSession.shared
    let task = session.dataTask(with: request, completionHandler: { (data, response, error) in
        if error == nil {
            DispatchQueue.main.async {
                self.activityIndicator.startAnimating()
                do {
                    let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary
                    guard let parsedJSON = json else {
                        print ("error while parsing JSON")
                        return
                    }
                    print(parsedJSON)
                } catch {
                    print ("Error : \(error)")
                }
            }
        } else {  
            print ("Error : \(error!)")
        }  
    })
    task.resume()
}

这里出了什么问题?为什么它只在我使用 POST 方法而不是 GET 方法时有效?

灵活编码器

您正在通过请求正文发送数据。默认情况下,aGET将期望参数作为查询字符串参数,而 aPOST将通过正文期望它们

https://secure.php.net/manual/it/function.http-get-request-body.php

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Android中使用Volley发送HTTP GET请求时出错

来自分类Dev

使用php发送GET请求时出现HTTP 400错误请求错误

来自分类Dev

发出http GET请求时出现超时错误

来自分类Dev

从$ http.get请求返回数据时在angular中使用jquery

来自分类Dev

从$ http.get请求返回数据时在angular中使用jquery

来自分类Dev

AngularJS - 仅使用 HTTP GET 时出现 CORS 错误

来自分类Dev

使用Netcat时HTTP GET请求禁止403错误

来自分类Dev

在云端功能中使用HTTP请求时读取ECONNRESET错误

来自分类Dev

在经典ASP中使用HTTP GET请求加载XML

来自分类Dev

JMeter:在HTTP请求中使用String数组的props.get

来自分类Dev

在 bash 中使用 netcat 发出 http get 请求

来自分类Dev

在节点js请求中使用GET方法?

来自分类Dev

使用 HTTPURLConnection 的 Docker 容器之间的 400 错误 HTTP GET 请求

来自分类Dev

使用goroutine时HTTP GET请求的时间响应

来自分类Dev

错误域的HTTP请求

来自分类Dev

laravel ajax方法:'post'但它使用get发送HTTP请求

来自分类Dev

使用http get 请求获取javascript 对象的方法?

来自分类Dev

发出HTTP请求时出现OpenSSL错误

来自分类Dev

在Firefox中使用websocket时,零散的GET请求

来自分类Dev

如何在ASP.NET Core的HTTP GET请求中使用ValidateAntiForgeryToken?

来自分类Dev

如何在Python中使用SSH连接从远程主机发送HTTP GET请求?

来自分类Dev

发出HTTP Get请求时线程中止

来自分类Dev

使用HTTP'GET'作为请求方法时获取HTML而不是JSON数据

来自分类Dev

AngularJS $http Get 方法错误,如“对预检请求的响应”

来自分类Dev

在 Apache Camel Elasticsearch 中使用 GET 请求时出现异常

来自分类Dev

Google Maps API GET请求失败,出现跨域错误

来自分类Dev

错误:发出HTTPS / HTTP请求时出现getaddrinfo ENOTFOUND错误

来自分类Dev

尝试执行简单的http请求时出现JS错误错误

来自分类Dev

在PHP中使用file_get_contents进行PUT请求的错误请求

Related 相关文章

  1. 1

    在Android中使用Volley发送HTTP GET请求时出错

  2. 2

    使用php发送GET请求时出现HTTP 400错误请求错误

  3. 3

    发出http GET请求时出现超时错误

  4. 4

    从$ http.get请求返回数据时在angular中使用jquery

  5. 5

    从$ http.get请求返回数据时在angular中使用jquery

  6. 6

    AngularJS - 仅使用 HTTP GET 时出现 CORS 错误

  7. 7

    使用Netcat时HTTP GET请求禁止403错误

  8. 8

    在云端功能中使用HTTP请求时读取ECONNRESET错误

  9. 9

    在经典ASP中使用HTTP GET请求加载XML

  10. 10

    JMeter:在HTTP请求中使用String数组的props.get

  11. 11

    在 bash 中使用 netcat 发出 http get 请求

  12. 12

    在节点js请求中使用GET方法?

  13. 13

    使用 HTTPURLConnection 的 Docker 容器之间的 400 错误 HTTP GET 请求

  14. 14

    使用goroutine时HTTP GET请求的时间响应

  15. 15

    错误域的HTTP请求

  16. 16

    laravel ajax方法:'post'但它使用get发送HTTP请求

  17. 17

    使用http get 请求获取javascript 对象的方法?

  18. 18

    发出HTTP请求时出现OpenSSL错误

  19. 19

    在Firefox中使用websocket时,零散的GET请求

  20. 20

    如何在ASP.NET Core的HTTP GET请求中使用ValidateAntiForgeryToken?

  21. 21

    如何在Python中使用SSH连接从远程主机发送HTTP GET请求?

  22. 22

    发出HTTP Get请求时线程中止

  23. 23

    使用HTTP'GET'作为请求方法时获取HTML而不是JSON数据

  24. 24

    AngularJS $http Get 方法错误,如“对预检请求的响应”

  25. 25

    在 Apache Camel Elasticsearch 中使用 GET 请求时出现异常

  26. 26

    Google Maps API GET请求失败,出现跨域错误

  27. 27

    错误:发出HTTPS / HTTP请求时出现getaddrinfo ENOTFOUND错误

  28. 28

    尝试执行简单的http请求时出现JS错误错误

  29. 29

    在PHP中使用file_get_contents进行PUT请求的错误请求

热门标签

归档