【发布时间】:2018-10-10 10:01:52
【问题描述】:
enter image description here我是 Swift 新手,遇到了一个问题。欢迎任何帮助和建议,我也看过 Alomofire,但由于一些错误我无法设置 Alamofire,而且我需要 Alamofire 的帮助:|
request.addValue("application/json", forHTTPHeaderField:
"Accept")
request.addValue("application/x-www-form-urlencoded",
forHTTPHeaderField: "Content-Type")
let postString = ["grant_type" : "password" ,
"username" : EntPhoneNumber.text! ,
"password" : EntPassword.text! ,] as [String :
Any]
do {
request.httpBody = try JSONSerialization.data(withJSONObject:
postString)
}catch let error {
print(error.localizedDescription)
DisplayMessage(UserMessage: "Something went wrong , please try
again!")
return
}
let task = URLSession.shared.dataTask(with: request)
{
(data : Data? , response : URLResponse? , error : Error?) in
self.removeActivtyIndicator(activityIndicator:
MyActivityIndicator)
if error != nil
{
self.DisplayMessage(UserMessage: "1Could not successfully
perform this request , please try again later.")
print("error = \(String(describing : error))")
return
}
// let's convert response sent from a server side code to a
NSDictionary object:
do { let json = try JSONSerialization.jsonObject(with: data!,
options: .mutableContainers) as? NSDictionary
print(json!)
if let parseJSON = json
{
let userID = parseJSON["grant_type"] as? String
print("access_token : \(String(describing: userID))");
if userID == nil
{
//display an alert dialog with a friendly error
message
self.DisplayMessage(UserMessage: "2Could not
successfully perform this request , please try later.")
return
}
else
{
self.DisplayMessage(UserMessage: "3successfully
loged in.")
}
}
...
如您所见,这是我的代码,我正在向 api 发送请求以获取 access_token,但我收到一个错误:
{error = "invalid_request"; "error_description" = "缺少必需的 'grant_type' 参数。"; }
这些是我应该发布到 API 的参数,在邮递员中它可以正常工作,但我的代码在编译器中根本不起作用。
【问题讨论】:
-
添加您要发布的网址?
-
@ChanWarde let myUrl = URL(string: "api.nahadeh.com/connect/token")
-
要将 Alamofire 添加到您的项目中,您需要使用 CocoaPods,github.com/Alamofire/Alamofire#installation。
-
所以...你在哪里设置了标题中的
Content Length?因为我看不到那部分。 -
@holex 我没有在邮递员中设置内容长度,但它有效