如何编写 url 字符串 POST 请求

Posted

技术标签:

【中文标题】如何编写 url 字符串 POST 请求【英文标题】:How to write a url string POST Request 【发布时间】:2017-11-21 21:15:49 【问题描述】:

嘿,所以我有一个网站,其中包含向其发布信息的文档。说明如何发布的文档。以这样的形式出现。

文档中的代码:

curl -X POST "https://api/management/user" \

-d "user_id=myuserid" \

-d "client=clientclientclient" \

-d "secret=secretsecret" 

我不知道如何用 swift 字符串写出来。

代码:

let string = "https://api/management/user/user_id=myuserid/client=clientclientclient/secret=secretsecret"

然后我可以做这样的事情。

代码:

  let url = NSURL(string: string)
    let request = NSMutableURLRequest(url: url! as URL)
    request.httpMethod = "POST"
    let session = URLSession.shared
    let tache = session.dataTask(with: request as URLRequest)  (data, response, error) -> Void in
    print(data!)
    print(response!)

    

    tache.resume()

我对此很陌生 那么写这篇文章的正确方法是什么。

【问题讨论】:

通过 POST 请求,参数会在正文中发送!有关示例,请参阅此已接受的答案:***.com/questions/6148900/… 【参考方案1】:

您需要将数据作为 POST 请求的 HTTP 正文发送。

if let theURL = URL.init(string:"https://api/management/user"
   let request = URLRequest(url: theURL)
   request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
   request.httpMethod = "POST"
   let postString = "user_id=myuserid&client=clientclientclient&secret=secretsecret"
   if let encodedPostString = postString.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlHostAllowed), let body = encodedPostString.data(using:.utf8)
      request.httpBody = body
   
   let task = URLSession.shared.dataTask(with: request)  (data, response, error) -> Void in
      print(data!)
      print(response!)
    
   task.resume()

【讨论】:

以上是关于如何编写 url 字符串 POST 请求的主要内容,如果未能解决你的问题,请参考以下文章

在jsp文件中如何编写正确的servlet请求路径

如何在laravel路由文件中编写动态url方法?

编写get和post请求

如何在wordpress中用php编写ajax?

如何在 Play Framework 的 WS API 中获取 POST 请求对象或 URL 字符串?

get post 接口代码及断言编写