MrMirror21

post image to pose api

...@@ -3,6 +3,11 @@ import Header from './components/Header'; ...@@ -3,6 +3,11 @@ import Header from './components/Header';
3 import './style/Main.css'; 3 import './style/Main.css';
4 require('dotenv').config(); 4 require('dotenv').config();
5 5
6 +const axios = require('axios');
7 +const API_KEY = "1f14e860f7f53f39a4dfe0a2a919a8c7";
8 +//process.env.api_key;
9 +let imageFormData = new FormData();
10 +
6 export default function Main() { 11 export default function Main() {
7 const [imgBase64, setImgBase64] = useState(""); 12 const [imgBase64, setImgBase64] = useState("");
8 const [img, setImage] = useState(null); 13 const [img, setImage] = useState(null);
...@@ -19,16 +24,50 @@ export default function Main() { ...@@ -19,16 +24,50 @@ export default function Main() {
19 setImage(event.target.files[0]); // 파일 상태 업데이트 24 setImage(event.target.files[0]); // 파일 상태 업데이트
20 } 25 }
21 } 26 }
27 +
28 + const analysisImage = () => {
29 + imageFormData.append('file', img);
30 + axios({
31 + method: 'post',
32 + url: "https://cors-anywhere.herokuapp.com/https://cv-api.kakaobrain.com/pose",
33 + headers: {
34 + 'Authorization': `KakaoAK ${API_KEY}`,
35 + 'Content-Type': 'multipart/form-data',
36 + 'X-Requested-With': '*'
37 + },
38 + data: imageFormData
39 + }).then(function (response) {
40 + console.log(JSON.stringify(response.data));
41 + }).catch(function (error) {
42 + if (error.response) {
43 + // 요청이 이루어졌으며 서버가 2xx의 범위를 벗어나는 상태 코드로 응답했습니다.
44 + console.log(error.response.data);
45 + console.log(error.response.status);
46 + console.log(error.response.headers);
47 + }
48 + else if (error.request) {
49 + // 요청이 이루어 졌으나 응답을 받지 못했습니다.
50 + // `error.request`는 브라우저의 XMLHttpRequest 인스턴스 또는
51 + // Node.js의 http.ClientRequest 인스턴스입니다.
52 + console.log(error.request);
53 + }
54 + else {
55 + // 오류를 발생시킨 요청을 설정하는 중에 문제가 발생했습니다.
56 + console.log('Error', error.message);
57 + }
58 + console.log(error.config);
59 + });
60 + }
22 return ( 61 return (
23 <div> 62 <div>
24 - <Header/> 63 + <Header />
25 <span>This is Main Page</span> 64 <span>This is Main Page</span>
26 - <div className="Image-Preview-Container" style={{"backgroundColor": "#efefef", "width":"400px", "height": "400px"}}> 65 + <div className="Image-Preview-Container" style={{ "backgroundColor": "#efefef", "width": "400px", "height": "400px" }}>
27 - <img className="Image-Preview" alt="preview"src={imgBase64}></img> 66 + <img className="Image-Preview" alt="preview" src={imgBase64}></img>
28 </div> 67 </div>
29 <div className="Image_input"> 68 <div className="Image_input">
30 - <input type="file" name="file" onChange={handleChangeFile}/> 69 + <input type="file" name="file" onChange={handleChangeFile} />
31 - <button type="button" onClick={null}/> 70 + <button type="button" onClick={analysisImage} />
32 </div> 71 </div>
33 </div> 72 </div>
34 ) 73 )
......