2016-11-03 4 views
-2

코드에 문제가 있으며 새로운 Alamofire 4에서 웹을 검색하여 운이 없게되었습니다.Alamofire 4 swift 3 헤더가 게시되지 않은 MultipartFormData 업로드

Alamofire.upload(multipartFormData:{ 
     multipartFormData in 
     multipartFormData.append(tempUrl, withName: self.path)}, 
        usingThreshold:UInt64.init(), 
        to:posturl!, 
        method:.post, 
        headers: Oauthdata.uplodHeader , 
        encodingCompletion: { encodingResult in 
         switch encodingResult { 
         case .success(let upload, _, _): 
          upload.responseJSON { response in 
           debugPrint(response) 
          } 
         case .failure(let encodingError): 
          print(encodingError) 
         } 
    })} catch { 
     print("Somethings not right") 
} 
+0

'Oauthdata.uplodHeader' (sic) 란 무엇입니까? 또한 코드를 포맷하십시오 : – Sajjon

+0

Oauthdata.uplodHeader는 다른 클래스의 메신저에 사용할 수 있도록 api 용으로 만든 구조체의 헤더입니다. 이것은 스택 오버 플로우에 대한 내 첫 번째 게시물입니다. –

+0

그래,하지만 뭐야? 너의 문제? 그게 효과가 없습니까? 실제 값인 oauthdata 헤더를 보는 것은 흥미로울 것입니다. 또한'!'를 쓰지 말고'guard re url = posturl else {return} 대신' – Sajjon

답변

0

the docs에서 언급 RequestAdapter 프로토콜을 사용하여 접근을 시도해보십시오 : 내 코드는 URL에 전화 아니에요 포스트 방법을 건너 뛰고이 설치를 수행하는 경우 HTTPClient 클래스입니다

class AccessTokenAdapter: RequestAdapter { 
    private let accessToken: String 

    init(accessToken: String) { 
     self.accessToken = accessToken 
    } 

    func adapt(_ urlRequest: URLRequest) throws -> URLRequest { 
     var urlRequest = urlRequest 
     urlRequest.setValue("Bearer " + accessToken, forHTTPHeaderField: "Authorization") 
     return urlRequest 
    } 
} 

class HTTPClient { 

    func setupHeader(with authToken: String) { 
     let sessionManager = SessionManager() 
     sessionManager.adapter = AccessTokenAdapter(accessToken: authToken) 
    } 
} 

. ..

+0

될 것입니다 그리고 내 업로드 방법에 넣어? –

+0

로그인 한 후 setupHeader를 호출 ... 실제로 유효한 토큰을 가지고있을 때! – Sajjon

+0

감사합니다. 고맙습니다. ..... 이제 알아둬야 할 것은 params를 추가 할 위치입니다. –

관련 문제