【发布时间】:2017-03-16 02:56:07
【问题描述】:
我在我的项目中安装了 Alamofire,现在这就是我所做的。
我安装了postman,并将我的 url 和 body 放入了一个 xml 对象,我得到了我的结果。
这是我对邮递员所做的具体操作的图片
我现在如何使用 Alamofire 或 SWXMLHash 发送它,因为我使用邮递员发送它
提前致谢!
编辑
我从另一个问题尝试过这个:
Alamofire.request(.POST, "https://something.com" , parameters: Dictionary(), encoding: .Custom({
(convertible, params) in
let mutableRequest = convertible.URLRequest.copy() as! NSMutableURLRequest
let data = (self.testString as NSString).dataUsingEncoding(NSUTF8StringEncoding)
mutableRequest.HTTPBody = data
return (mutableRequest, nil)
}))
.responseJSON { response in
print(response.response)
print(response.result)
}
}
但它没有发送任何东西
这是日志:
可选({ 网址: https://something.com } { 状态码:200,标题 { 连接=“保持活动”; “内容长度”= 349; “内容类型”=“应用程序/xml”; 日期 =“格林威治标准时间 2016 年 11 月 2 日星期三 21:13:32”; 服务器 = nginx; "Strict-Transport-Security" = "max-age=31536000; includeSubDomains"; } })
失败
编辑
永远不要忘记传递参数,如果你没有简单的添加这个,参数:Dictionary()
【问题讨论】:
-
乍一看,您的代码看起来是有效的。我建议您将您的请求与邮递员的有效请求进行比较。也许服务器需要特殊的
Content-Type或其他东西。您应该找到请求之间的区别。回应可能不会给你答案。 -
嗨@Silmaril 感谢您的评论。我在邮递员和我的项目中使用相同的网址,但在邮递员中,我得到了我应该得到的结果,但在我的应用程序中,我的问题出现了错误。我不明白你应该尝试什么内容类型
-
相同的 url 是不够的。请求中还包含 HTTP 标头(其中之一是
Content-Type)。Alamofire.request方法返回您的应用程序正在执行的实际请求。你可以print它并与邮递员的请求数据进行比较(按右侧的code按钮,你也可以将类型更改为cURL,使其看起来类似于print结果)。 -
我可能会在这里找到答案 stackoverflow.com/a/32631261/3704857 但我无法获得任何日志来查看我是否做得对你知道如何打印来自 nsurlconnection 的响应
-
你的意思是像这样使用
NSURLConnection对你有用吗?您使用的 API 应该没有区别。差异在于您的实际要求。例如,在您链接的示例中,有request.setValue...行。它实际上改变了我正在谈论的 HTTP 标头。您可以使用 Alamofire 或其他任何方式更改它们。NSURLConnection在Custom编码中接受与 Alamofire 相同的请求。
标签: ios xml swift alamofire swxmlhash