2017-07-29 148 views
-2

我正在尝试使Alamofire POST请求。这是我想提出的要求..状态代码405问题..Alamofire POST请求...

 Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding(destination: .queryString), headers : headers) 
     .responseString { response in 
      print(response.result) 
} 

虽然我得到的结果是“成功”,状态码总是显示为405,而它应该是200的“编码”的一部分请求,我已经尝试了一切,如JSONEncoding.default,JSONEncoding.prettyPrinted,URLEncoding.httpbody ...但始终状态码仍然是405。任何人都可以请帮忙吗?在此先感谢...

+0

我对您的问题提供答案很可能会后端问题 –

回答

0

这是这个问题......一些改动必须作出的解决方案..

的给出的头是这样的:let headers = [“Content-Type”:“application/json”]。但它必须让头= [“Content-Type”:“application/x-www-form-urlencoded”]。 此外,编码应为URLEncoding.httpBody。

进行这些改变使得它做工精细...

-1

尝试更换:

responseStringresponseJSONURLEncoding(destination: .queryString)URLEncoding.default

LIKE:

Alamofire.request(strURL, method: .post, parameters: params, encoding: URLEncoding.default, headers: headers).responseJSON { (responseObject) -> Void in 

//Do something 

} 
+0

No..it不起作用。 'response.result'也给出'失败'.. –

+0

但是,它在我的许多应用程序中工作得非常好! –

+0

尝试在我的函数中打印'responseObject.result.value'。我已经测试了这个功能100多次。 –

1

我认为问题是与您的服务器,因为此状态代码只有当服务器禁用api时才会出现

HTTP 405方法不允许响应状态码指示 服务器已知请求方法,但已被禁用且不能使用 。两个强制方法GET和HEAD绝不能是 禁用,不应返回此错误代码。

所以请联系您的服务器(后端开发人员),请确保您的网址是正确的

+0

它在邮递员中正常工作.. –

+0

我很确定你的网址是错误的从移动端追加URL与“/”在URL的末尾,并再次尝试 –

+0

是的..它已经附加了一个“/”... –