1

我正在尝试在 moya 中上传带有参数的图像作为多部分表单数据。我有以下 api:

enum ApiService {
    case upload(body:[String: String]?, profilePhoto: Data, frontIdPhoto: Data, backIdPhoto: Data)

}

extension ApiService: TargetType {

    var baseURL: URL {
       return URL(string: "http://202.166.194.122:8787/api/")!
    }

    var path: String {
        switch self {
        case .upload:
            return "JsonRx/UpdateCustomerKyc/"
        }
    }

    var method: Moya.Method {
        switch self {
        case .upload:
            return .post
        }
    }

    var parameters: [String: Any]? {
        switch self {
        case .upload(let body, _, _, _):
            return body as [String: Any]?
        }
    }

    var parameterEncoding: ParameterEncoding {
            return URLEncoding.default
        }
    }

    var task: Task {
        switch self {
        case .upload(_, let profilePhoto,let frontIdPhoto, let backIdPhoto):
            var formdata: [MultipartFormData] = []            
            let profilePic = MultipartFormData(provider: .data(profilePhoto), name: "ProfileImage", fileName: "profileimage.png", mimeType: "image/png")
            let frontPhoto = MultipartFormData(provider: .data(frontIdPhoto), name: "FrontIdImage", fileName: "frontimage.png", mimeType: "image/png")
            let backPhoto = MultipartFormData(provider: .data(backIdPhoto), name: "BackIdImage", fileName: "backimage.png", mimeType: "image/png")
            formdata.append(profilePic)
            formdata.append(frontPhoto)
            formdata.append(backPhoto)
            return .upload(.multipart(formdata))
        }
    }

    var sampleData: Data {
       return Data()
    }

    var validate: Bool {
       return true
    }

但是,响应状态码给出了 404,它在邮递员中工作正常。

4

0 回答 0