0

我必须发送一组请求正文,以下是我必须发送的请求正文

[{
   "user": "abc",
   "id": "demo"
}]

我试过什么?

var requestArray = [[String: String]]()
let params = [
            "user": "abc",
            "id": "demo"
        ]
requestArray.append(params)

var request = URLRequest(url: URL.init(string: myUrl)!)
request.httpMethod = ".post"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try! JSONSerialization.data(withJSONObject: requestArray)

Alamofire.request(request)
         .response{ 
             response in
             print("Request Body:- \(response.request)")
             print(response)
}

我面临的问题

URL 在 Postman 和 Android 应用程序中都能完美运行

以上解决方案对我不起作用。我的网络服务返回给我400 error code (Bad Request)

我是 iOS 开发的新手,因此我们将不胜感激。

4

5 回答 5

1

伙计们,我已经解决了这个问题。我正在玩你们的一些解决方案,突然间它奏效了!

那么主要问题是什么?

  • 我将其更改request.httpMethod = ".post"request.httpMethod = "post".

最初,当我回复@NiravD 时这不起作用,但经过一段时间我做了下面的更改,我能够看到输出

在控制台上查看响应的其他更改

  • 替换.response.responseJSON

非常感谢所有帮助过的人:)

于 2018-08-17T11:29:24.857 回答
0

首先Alamofire需要Parameter是 type [String: Any],其次你不需要发出这样的 post 请求。不需要 JSONSerialization。试试这个,它会好的。

  let params: [String: Any] = [
                "user": "abc",
                "id": "demo"
            ]


            Alamofire.request(URL.init(string: myUrl)!, method: .post, parameters: params)
                .validate()
                .responseString {
                    (response) in
                     print(response)
            }
于 2018-08-17T10:28:39.727 回答
0

请试试这个

// 这应该伴随您所需的工作[[String:Any]]

var requestArray = [AnyObject] // => Array to conatin dictionaries of type [String: Any]
var dictionaryObject = [String: AnyObject] // => to create some dictionary to append in requestArray
dictionaryObject["user"] = "abc"
dictionaryObject["id"] = "demo"
requestArray.append(dictionaryObject)

Alamofire.request(URL.init(string: myUrl)!, method: .post, parameters: requestArray).validate().responseString { (response) in
    print(response)
}
于 2018-08-17T10:52:27.697 回答
0

可能是您缺少标题。您可以尝试添加您可以看到邮递员的标题吗?

于 2018-08-17T10:54:51.453 回答
-2

您必须从 Alamofire.request 传递您的 requestArray 而不是 request

Alamofire.request(requestArray)
manager.request(url, method: .get, headers: AUTH_HEADER).responseJSON { response in

    switch response.result {
        case .success:
            //whatever you want to do in succes

        case .failure(let error):
            if let del = self.delegate {
                //do what you want
            }
            print(error)
    }
}
于 2018-08-17T10:13:21.963 回答