Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在Alamofire4中调试HTTP POST的正确方法;HTTP POST不工作_Swift_Http_Post_Request_Alamofire - Fatal编程技术网

Swift 在Alamofire4中调试HTTP POST的正确方法;HTTP POST不工作

Swift 在Alamofire4中调试HTTP POST的正确方法;HTTP POST不工作,swift,http,post,request,alamofire,Swift,Http,Post,Request,Alamofire,我有一段简单的代码,用于下面的工作 let params: Parameters! = ["xmldata": self.makeXML(), "reference": self.questionnaire!.jobRef!] Alamofire.request(url, method: .post, parameters: params, encoding: URLEncoding.default) .validate() .r

我有一段简单的代码,用于下面的工作

let params: Parameters! = ["xmldata": self.makeXML(), "reference": self.questionnaire!.jobRef!]

Alamofire.request(url, method: .post, parameters: params, encoding: URLEncoding.default)
                .validate()
                .responseString { response in
                    print("Success: \(response.result)")
                    print("Response: \(response.response)")
                    print("Request: \(response.request)")
                    print("Error: \(response.error)")
                   // print("Response String: \(response.result.value)")
                }
下面的代码假设向一个简单的web表单请求http post

<form action="/submit?textarea=1" method="post" enctype="multipart/form-data">
      <p>Paste XML data here.</p>

      <input id="id_reference" maxlength="50" name="reference" type="text" placeholder="Reference.." /><br>
      <textarea id="id_xmldata" maxlength="5000" name="xmldata" rows="10" cols="80"></textarea>

      <br>
      <input type="submit" 
             name="textarea_post_form" 
             value="Send" />
      </form>

将XML数据粘贴到此处



代码应该只将2个字符串作为参数发布到网站上的表单中,并将数据插入数据库。它曾经与Alamofire 3和Swift 2配合使用,但现在不再与Alamofire 4和Swift 3配合使用。现在我不知道它为什么不工作,也不知道应该从哪里开始调试,因为我找不到方法来查看是否发送了正确的数据,或者服务器端是否有错误

是否有办法修复此问题或跟踪错误

我从print语句中得到的似乎没有任何错误

Success: SUCCESS
[Timeline]: Timeline: { "Request Start Time": 508807148.851, "Initial Response Time": 508807148.948, "Request Completed Time": 508807148.949, "Serialization Completed Time": 508807148.950, "Latency": 0.098 secs, "Request Duration": 0.099 secs, "Serialization Duration": 0.000 secs, "Total Duration": 0.099 secs }
Response: Optional(<NSHTTPURLResponse: 0x600000225520> { URL: http://philips-survey.in.th/submit?textarea=1 } { status code: 200, headers {
    Connection = "Keep-Alive";
    "Content-Encoding" = gzip;
    "Content-Type" = "text/html; charset=utf-8";
    Date = "Tue, 14 Feb 2017 23:18:59 GMT";
    "Keep-Alive" = "timeout=5, max=100";
    Server = "Apache/2.4.10 (Debian)";
    "Transfer-Encoding" = Identity;
    Vary = "Cookie,Accept-Encoding";
    "X-Frame-Options" = SAMEORIGIN;
} })
Request: Optional(http://xxxx.com/submit?textarea=1)
Error: nil
成功:成功
[时间线]:时间线:{“请求开始时间”:508807148.851,“初始响应时间”:508807148.948,“请求完成时间”:508807148.949,“序列化完成时间”:508807148.950,“延迟”:0.098秒,“请求持续时间”:0.099秒,“序列化持续时间”:0.000秒,“总持续时间”:0.099秒}
响应:可选({URL:http://philips-survey.in.th/submit?textarea=1 }{状态代码:200,标题{
连接=“保持活动”;
“内容编码”=gzip;
“内容类型”=“文本/html;字符集=utf-8”;
日期=“2017年2月14日星期二23:18:59 GMT”;
“保持活动”=“超时=5,最大=100”;
Server=“Apache/2.4.10(Debian)”;
“传输编码”=标识;
Vary=“Cookie,接受编码”;
“X-Frame-Options”=SAMEORIGIN;
} })
请求:可选(http://xxxx.com/submit?textarea=1)
错误:无

您是否尝试过使用Alamofire上传multipartFormData?大概是这样的:
Network.CustomManager.upload(.POST,postEndpoint,headers:headers,multipartFormData:{multipartFormData in…

您是否尝试过将multipartFormData与Alamofire一起上载?类似于以下内容:
Network.CustomManager.upload(.POST,postEndpoint,headers:headers,multipartFormData:{multipartFormData in…

响应有一个200状态码,它应该可以工作。服务器端是否存在错误?尝试将
validate()
更改为
validate()(状态代码:200..@JuanCurti响应应为302。提交表单后,页面应重定向到另一个页面…响应具有200状态代码,应该可以工作。服务器端是否存在错误?尝试将
validate()
更改为
validate()(状态代码:200..@JuanCurti响应应为302。提交表单后,页面应重定向到另一页面。。。