Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.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
Ios Alamofire GET请求不为';t工作不正常_Ios_Swift_Get_Request_Alamofire - Fatal编程技术网

Ios Alamofire GET请求不为';t工作不正常

Ios Alamofire GET请求不为';t工作不正常,ios,swift,get,request,alamofire,Ios,Swift,Get,Request,Alamofire,我发出了一个这样的GET请求 let parameters: Parameters = [ "filter": ["fruit": "apple"] ] Alamofire.request(urlStr, method: .get, parameters: parameters, encoding:URLEncoding.default).responseJSON { response in print(response.request!) }

我发出了一个这样的GET请求

let parameters: Parameters = [
    "filter": ["fruit": "apple"]
     ]

Alamofire.request(urlStr, method: .get, parameters: parameters, encoding:URLEncoding.default).responseJSON { response in
           print(response.request!)
     }
但是,GET请求无法正常工作。我认为这些参数根本不正确。这是使用以下代码打印的URL请求
print(response.request!)

但是,使用postman,我可以发送正确的请求,并使用以下URL请求获得正确的响应

https://api.example.com/fruits?apiKey=1&filter={“水果”:“苹果”}

我不知道怎么解决这个问题。我尝试了许多编码类型,但都不起作用。任何提示或建议都将不胜感激

编辑:我确实使用alamofire从服务器收到响应,但它不是正确的数据,因为忽略了参数。然而,我从邮递员那里得到的答复是正确的。

早上简略

由于没有发布关于如何编码集合类型的规范,因此使用了将[]附加到数组值的键(foo[]=1&foo[]=2)以及将嵌套字典值的键(foo[bar]=baz)附加到方括号中的约定

在我看来,您确实应该避免在查询字符串中传递数组对象。您可以将请求更改为以下内容:

apiKey=1&fruit=apple
田间果实本身的存在表明应过滤响应

此外:

<>而不是使用get,您应该考虑使用JSON、XML或另一个定义良好的格式使用POST或PUT和PASS传递值。显然,这可能需要服务器端更改

如果服务器端超出了您的控制范围,您应该考虑手动对这些参数进行编码。

手动编码的方法


快乐编码

谢谢你确认我可能需要做什么。我无法控制服务器端,所以看起来我应该手动编码并将其添加到url的末尾。
apiKey=1&fruit=apple