---
# System prepended metadata

title: Untitled

---


```swift=
import Foundation

enum Const {
  static let baseURL = "https://market-training.yagom-academy.kr/api/products"
  static let imageURL = "https://s3.ap-northeast-2.amazonaws.com/media.yagom-academy.kr/training-resources/3/thumb/87aa7c8966df11ecad1df993f20d4a2a.jpg"
}

class Network {
  let boundary = UUID().uuidString
  
  func searchSecretKey() {
    guard let url = URL(string: Const.baseURL + "/2186/secret") else { return }
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.addValue("cd706a3e-66db-11ec-9626-796401f2341a", forHTTPHeaderField: "identifier")
    request.httpBody =
    """
    {"secret": "password"}
    """.data(using: .utf8)
    
    URLSession.shared.dataTask(with: request) { data, response, error in
      guard error == nil else { return }
      guard let response = response as? HTTPURLResponse else { return }
      
      print(response.statusCode)
      print(String(data: data!, encoding: .utf8))
    }.resume()
  }
  
  
  
  func post() {
    guard let url = URL(string: Const.baseURL) else { return }
    print(boundary)
    
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    request.addValue("cd706a3e-66db-11ec-9626-796401f2341a", forHTTPHeaderField: "identifier")
    request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
    request.httpBody = self.createHttpBodyData()
    
    URLSession.shared.dataTask(with: request) { data, response, error in
      guard error == nil else { return }
      guard let response = response as? HTTPURLResponse else { return }
      
      print(response.statusCode)
      
    }.resume()
  }
  
  private func createHttpBodyData() -> Data {
    let jsonData =
    """
    {
      "name": "TestProduct",
      "amount": 1000,
      "currency": "KRW",
      "secret": "password",
      "description: "desc"
    }
    """.data(using: .utf8)
    
    let filename = Const.imageURL
    
    var data = Data()
    data.append("\r\n--\(boundary)\r\n".data(using: .utf8)!)
    data.append("Content-Disposition: form-data; name=\"params\";".data(using: .utf8)!)
    data.append("Content-Type: application/json\r\n\r\n".data(using: .utf8)!)
    data.append(jsonData!)
    data.append("\r\n--\(boundary)--\r\n".data(using: .utf8)!)
    data.append("\r\n--\(boundary)\r\n".data(using: .utf8)!)
    data.append("Content-Disposition: form-data; name=\"images\";".data(using: .utf8)!)
    data.append("Content-Type: image/jpeg\r\n\r\n".data(using: .utf8)!)
    data.append(try! Data(contentsOf: URL(string: Const.imageURL)!))
    data.append("\r\n--\(boundary)--\r\n".data(using: .utf8)!)
    
    /*
    --boundary
    Content-Disposition: form-data; name=params
    Content-Type: image/png
    이미지 데이터~
    --boundary--
    */
  
    return data
  }
}

```