“提供的项目无效”azure移动服务调用后端调用API

时间:2016-09-08 12:21:49

标签: ios swift azure azure-mobile-services

我在我的iOS应用程序中使用Azure移动服务连接到我的后端。我要做的是将图像作为multipart / form-data上传到我的后端。

我做了以下事情:

  1. 创建一个“body”作为NSMutableData,其中包含multipart / form-data(包括我要上传的图像数据)

        let image_data = UIImagePNGRepresentation(image)!
    
        let body = NSMutableData()
    
        let fname = "test.png"
        let mimetype = "image/png"
    
        //define rest of multipart/form-data with image data embedded
    
        body.appendData("--\(boundary)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData("Content-Disposition:form-data; name=\"test\"\r\n\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData("hi\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
    
    
    
        body.appendData("--\(boundary)\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData("Content-Disposition:form-data; name=\"file\"; filename=\"\(fname)\"\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData("Content-Type: \(mimetype)\r\n\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(image_data)
        body.appendData("\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
    
        body.appendData("--\(boundary)--\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
    
  2. 使用.invokeAPI(自定义API呼叫)将数据上传到我的api-end点

        Azure.client.invokeAPI("UploadProfileImage", body: body, HTTPMethod: "POST", parameters: nil, headers: ["Content-Type": "multipart/form-data; boundary=\(boundary)"]) { (result, response, error) -> Void in
            if error == nil {
                print("SUCCESs! wOO")
                print(result)
            }else{
                print("ERROR!: \(error?.localizedDescription)")
                print("response: \(response)")
                print("result: \(result)")
            }
        }
    
  3. *正在从此函数接收“boundary”变量:

    func generateBoundaryString() -> String {
        return "Boundary-\(NSUUID().UUIDString)"
    }
    

    然而我不断得到的错误是“提供的项目无效”。这让我抓狂,因为我确信我的多部分/表格数据是正确的,并且我正在以正确的方式上传它,我只是不明白它为什么不接受数据。

    任何帮助都将受到高度赞赏!

0 个答案:

没有答案