반응형
꽃 사진 → 그림 그리기
POST - /picture
[Request]
{
"photo_id": 그림으로 변환할 사진 PK
}
[Response]
{
"photo_id": 아까 그 그림 PK
"picture_id": 그려진 그림 PK
}
코드 내용
class FinalResultViewController: UIViewController {
var selectedImage: UIImage!
var photo_id = 1
let floomingUrl: String = "https://ed6e-119-194-11-234.jp.ngrok.io/picture"
let picutureImageUrl: String = "https://ed6e-119-194-11-234.jp.ngrok.io/picture/24"
let header : HTTPHeaders = ["Content-Type" : "application/json"]
@IBOutlet weak var finalResultView: UIView!
@IBOutlet weak var finalResultImageView: UIImageView!
@IBOutlet weak var commentLabel: UILabel!
// /picutre로 post 요청
override func viewDidLoad() {
super.viewDidLoad()
finalResultView.clipsToBounds = true
finalResultView.layer.cornerRadius = 30
finalResultView.layer.maskedCorners = CACornerMask(arrayLiteral: .layerMinXMinYCorner, .layerMaxXMinYCorner)
finalResultView.backgroundColor = UIColor(patternImage: UIImage(named: "background.jpeg")!)
// Do any additional setup after loading the view.
AF.request(
floomingUrl, // [주소]
method: .post, // [전송 타입]
parameters: ["photo_id":1], // [전송 데이터]
encoding: JSONEncoding.default, // [인코딩 스타일]
headers: header // [헤더 지정]
)
.validate(statusCode: 200..<300)
.responseData { response in
switch response.result {
case .success(let value):
let json = JSON(value)
let pictureId = json["picture_id"]
print(pictureId)
default:
return
}
}
// AF.request(
// floomingUrl, // [주소]
// method: .get, // [전송 타입]
// parameters: [:], // [전송 데이터]
// encoding: JSONEncoding.default, // [인코딩 스타일]
// headers: header // [헤더 지정]
// )
// .validate(statusCode: 200..<300)
// .responseData { response in
// switch response.result {
// case .success(let value):
// let encodedStr = self.picutureImageUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
// self.updateUI(encodedStr)
// default:
// return
// }
// }
let urlString = self.picutureImageUrl
let encodedStr = urlString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
self.updateUI(encodedStr)
//finalResultImageView.image = selectedImage
}
func updateUI(_ url : String){
var tempImg : UIImage?
DispatchQueue.global().async {
if let ImageData = try? Data(contentsOf: URL(string: url)!) {
tempImg = UIImage(data: ImageData)!
} else {
tempImg = UIImage(named: "01.svg")!
}
DispatchQueue.main.async {
self.finalResultImageView.image = tempImg
}
}
}
photo_id가 1번인 것을 파라미터로 http body에 전송
인코딩 스타일에 따라 header로 전송되는지 body로 전송되는지 달라짐
response로 받은 pictureid를 이용
현재는 하드코딩된 상태로 이미지를 그리고 있음 -> 후에 수정 예정
반응형
'iOS 개발' 카테고리의 다른 글
iOS 개발 - Navigation Controller에서 뒤로 가기 액션 (0) | 2022.08.12 |
---|---|
iOS개발 - SwiftyJSON, JSON 정리 (0) | 2022.08.01 |
iOS개발 - 화면 간 이미지 전달하는 방법 (0) | 2022.07.17 |
iOS개발 - HTTP Method란? (0) | 2022.07.16 |
iOS개발 - Alomfire 사용법 (0) | 2022.07.16 |
반응형
꽃 사진 → 그림 그리기
POST - /picture
[Request]
{
"photo_id": 그림으로 변환할 사진 PK
}
[Response]
{
"photo_id": 아까 그 그림 PK
"picture_id": 그려진 그림 PK
}
코드 내용
class FinalResultViewController: UIViewController {
var selectedImage: UIImage!
var photo_id = 1
let floomingUrl: String = "https://ed6e-119-194-11-234.jp.ngrok.io/picture"
let picutureImageUrl: String = "https://ed6e-119-194-11-234.jp.ngrok.io/picture/24"
let header : HTTPHeaders = ["Content-Type" : "application/json"]
@IBOutlet weak var finalResultView: UIView!
@IBOutlet weak var finalResultImageView: UIImageView!
@IBOutlet weak var commentLabel: UILabel!
// /picutre로 post 요청
override func viewDidLoad() {
super.viewDidLoad()
finalResultView.clipsToBounds = true
finalResultView.layer.cornerRadius = 30
finalResultView.layer.maskedCorners = CACornerMask(arrayLiteral: .layerMinXMinYCorner, .layerMaxXMinYCorner)
finalResultView.backgroundColor = UIColor(patternImage: UIImage(named: "background.jpeg")!)
// Do any additional setup after loading the view.
AF.request(
floomingUrl, // [주소]
method: .post, // [전송 타입]
parameters: ["photo_id":1], // [전송 데이터]
encoding: JSONEncoding.default, // [인코딩 스타일]
headers: header // [헤더 지정]
)
.validate(statusCode: 200..<300)
.responseData { response in
switch response.result {
case .success(let value):
let json = JSON(value)
let pictureId = json["picture_id"]
print(pictureId)
default:
return
}
}
// AF.request(
// floomingUrl, // [주소]
// method: .get, // [전송 타입]
// parameters: [:], // [전송 데이터]
// encoding: JSONEncoding.default, // [인코딩 스타일]
// headers: header // [헤더 지정]
// )
// .validate(statusCode: 200..<300)
// .responseData { response in
// switch response.result {
// case .success(let value):
// let encodedStr = self.picutureImageUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
// self.updateUI(encodedStr)
// default:
// return
// }
// }
let urlString = self.picutureImageUrl
let encodedStr = urlString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
self.updateUI(encodedStr)
//finalResultImageView.image = selectedImage
}
func updateUI(_ url : String){
var tempImg : UIImage?
DispatchQueue.global().async {
if let ImageData = try? Data(contentsOf: URL(string: url)!) {
tempImg = UIImage(data: ImageData)!
} else {
tempImg = UIImage(named: "01.svg")!
}
DispatchQueue.main.async {
self.finalResultImageView.image = tempImg
}
}
}
photo_id가 1번인 것을 파라미터로 http body에 전송
인코딩 스타일에 따라 header로 전송되는지 body로 전송되는지 달라짐
response로 받은 pictureid를 이용
현재는 하드코딩된 상태로 이미지를 그리고 있음 -> 후에 수정 예정
반응형
'iOS 개발' 카테고리의 다른 글
iOS 개발 - Navigation Controller에서 뒤로 가기 액션 (0) | 2022.08.12 |
---|---|
iOS개발 - SwiftyJSON, JSON 정리 (0) | 2022.08.01 |
iOS개발 - 화면 간 이미지 전달하는 방법 (0) | 2022.07.17 |
iOS개발 - HTTP Method란? (0) | 2022.07.16 |
iOS개발 - Alomfire 사용법 (0) | 2022.07.16 |