【发布时间】:2019-12-31 01:38:59
【问题描述】:
我目前正在尝试在我的 iOS 应用程序中使用 pho.to API。我正在尝试根据文档提出简单的请求,但是我似乎无法让请求成功通过。在我的 API 客户端文件中,我有以下代码:
let dataStr = """
<image_process_call>
<image_url>http://developers.pho.to/img/girl.jpg</image_url>
<methods_list>
<method order="1">
<name>desaturation</name>
</method>
<method order="2">
<name>caricature</name>
<params>type=1;crop_portrait=true</params>
</method>
</methods_list>
<thumb1_size>100</thumb1_size>
</image_process_call>
"""
let encodedStr = dataStr.replacingOccurrences(of: "\n", with: "").replacingOccurrences(of: " ", with: "")
let signData = encodedStr.hmac(key: key)
let urlStr = "https://opeapi.ws.pho.to/addtask/?app_id=\(appId)&key=\(key)&sign_data=\(signData)&data=\(encodedStr.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)!))"
HMAC 编码正在根据this Stack Overflow 帖子进行。不幸的是,当使用 URLSession 向这个 URL 发出请求时,我得到了这个响应:
<?xml version=\"1.0\"?>\n<image_process_response><status>SecurityError</status><err_code>614</err_code><description>Error in POST parameters: one or more parameters (DATA , SIGN_DATA or APP_ID) are empty</description></image_process_response>
我觉得我的问题更多地与实际形成请求有关,而不是特定于 API 本身的问题。我知道我的代码有点乱,但是我希望有人能在提出这样的请求方面指出我正确的方向。谢谢!
【问题讨论】:
-
你能解释一下你想用 pho.to API 做什么吗?
-
我正在尝试进行面部修饰和背景去除。
标签: swift xml post nsurlsession hmac