0
にparamsは私の要件は、サーバーにファイル名と期間と録音した音声ファイルをアップロードすることであるRESTのAPIを使用してMultipartformデータをサーバ・スウィフト3
私はマルチパートフォームデータを形成する必要があるコード
private func createRequestBody(boundary:"--BXDFG", multidata:Data, mime:"audio/mp4", filePathKey:"file", filename:"test", metas:["title":"Mytitle","duration":"30"] -> Data {
var body = Data()
body.append(Data("--\(boundary)\r\n".utf8))
body.append(Data("Content-Disposition: form-data; name=\"\(filePathKey)\"; filename=\"\(filename)\"\r\n".utf8))
body.append(Data("Content-Type: \(mime)\r\n\r\n".utf8))
body.append(multidata)
body.append(Data("\r\n".utf8))
if (metas != nil) {
for (key, value) in metas! {
body.append(Data("--\(boundary)\r\n".utf8))
body.append(Data("Content-Disposition: form-data; name=\"\(key)\"\r\n".utf8))
body.append(Data((value as! String).utf8))
body.append(Data("\r\n".utf8))
}
}
body.append(Data("--\(boundary)--\r\n".utf8))
return body
}
以下のようである私は私がマルチパートフォーム要求サーバー側で
、私が持っていると、「タイトル」と「継続」を追加していたNSDataとして、ループのためのオーディオを渡してやっていますコード
@api.route('/upload/<userid>', methods=['POST'])
def upload(userid):
if request.method == 'POST':
if 'title' not in request.form:
return jsonify({'error': 'Need a valid title for uploaded file', 'code': 403})
「タイトル」がマルチパートのフォームデータに渡されない場合、サーバーはエラー応答を返します。
私の場合、「title」がリクエストの一部として追加されても、データはサーバに渡されず、サーバはエラーを返します。オーディオデータだけを渡して、サーバー側の「タイトル」の検証を取り除くと、オーディオデータがサーバーに正常にアップロードされます。
は、私が「タイトル」と「データ」のサーバーに
PSを通過していない理由を理解することはできませんよ:APIリクエストはPOSTMANクライアントで正常に動作します。
おかげ
にライン
の交換私の場合を解決し、私はなぜ知りませんこれが起こっているgですが、このケースではalamofireを使用することをお勧めします。それは簡単でスムーズです。確認してください: https://github.com/Alamofire/Alamofire –