【Unity(C#),Python】API 통신 공부 메모②Flask로 로컬 서버 시작
이번에 할 일
이 기사는 마지막 공부의 연속입니다.
【전회】: 【Unity(C#)】API 통신 공부 메모①
마지막으로 할 수 없었던 Post의 처리를 배웁니다.
아무것도 모르는 해석이 산성이므로 마사카리, 올 오케이입니다.
Flask
Flask(플라스크)는 프로그래밍 언어 Python을 위한 경량의 웹 애플리케이션 프레임워크이다. 표준으로 제공하는 기능을 최소한으로 유지하고 있기 때문에, 자신을 「마이크로 프레임워크」라고 부르고 있다.
Wikipedia 보다 인용
이번에는 Flask라는 Python 웹 애플리케이션 프레임 워크 1
로컬로 애플리케이션 서버를 설정하고 Unity 측에서 HTTP 요청(POST) 보내기
까지 해 보려고합니다.
대략 참고 링크를 따라 진행합니다.
【참고 링크】: 파이썬과 함께 작동하는 방법
Flask 설치
$pip install flask
GET 요청
먼저 Flask로 세운 로컬 서버에 GET 요청을 보냅니다.
파이썬 측 처리
from flask import Flask
app = Flask(__name__)
@app.route("/", methods=['GET'])
def index():
return "HIKAKIN「ブンブン!ハローユーチューブ!」"
if __name__ == "__main__":
app.debug = True
app.run()
Unity 측의 처리는 아래 링크에서 빌렸습니다.
【참고 링크】: Unity에서 HTTP에 연결
Unity 측에서 HTTP 요청을 보내는 스크립트
using System.Collections;
using UnityEngine.Networking;
using UnityEngine;
public class HTTPGet : MonoBehaviour {
//接続するURL
private const string URL = "http://localhost:5000/";
void Start()
{
//コルーチンを呼び出す
StartCoroutine("OnSend", URL);
}
IEnumerator OnSend(string url)
{
//指定したURLでGET
UnityWebRequest webRequest = UnityWebRequest.Get(url);
//URLに接続して結果が戻ってくるまで待機
yield return webRequest.SendWebRequest();
//エラーが出ていないかチェック
if (webRequest.isNetworkError)
{
//通信失敗
Debug.Log(webRequest.error);
}
else
{
//通信成功
Debug.Log("Get" + " : "+webRequest.downloadHandler.text);
}
}
}
성공했습니다.
①Python측(VSC)에서 디버깅 개시
②Unity에서 Play
라는 순서입니다.
POST 요청
다음은 Flask로 세운 로컬 서버에 POST 요청을 보냅니다.
@app.route("/", methods=['POST', 'GET'])
에 POST를 추가했습니다.
from flask import Flask
app = Flask(__name__)
@app.route("/", methods=['POST', 'GET'])
def index():
return "HIKAKIN「ブンブン!ハローユーチューブ!」"
if __name__ == "__main__":
app.debug = True
app.run()
실제로 해보고 생각한 것은 결국 POST와 GET은 무엇이 다르다는 것입니다.
이 의문에 관해서는 아래의 링크를 보고 일단 깊게 생각하는 것을 멈추기로 했습니다.
【인용원】: GET과 POST의 차이에 대해
사실은 GET에서해야 할 일도 POST로 할 수 있습니다.
하고 싶다면 모든 처리를 POST로 만들 수 있습니다.
이 근처는 사상적인 이야기도 있으므로, 뭐라고 말할 수 없는 부분입니다.
다음에 할 일
Post의 처리도 잘 되었으므로 다음번에는 Unity측에서 입력한 정보를 등록 & 로그인하는 기능을 만들어 갑니다.
우선 알고있는 일로서,
요청을 보낼 때 정보를 전달하는 방법으로,
Unity 측에
WWW.Form
가 준비되어 있는 것입니다. //POSTする情報
WWWForm form = new WWWForm();
form.AddField("user_id", idInputField.text, Encoding.UTF8);
form.AddField("password",passInputField.text, Encoding.UTF8);
위와 같이 Unity측에서 로그인 화면에 입력한 ID나 패스워드를 서버에 보낼 수 있다. . . 해야합니다.
했습니다 → 【Unity(C#),Python】API 통신 공부 메모 ③간이판 로그인 기능의 실장
프레임워크와 라이브러리의 차이 ↩
Reference
이 문제에 관하여(【Unity(C#),Python】API 통신 공부 메모②Flask로 로컬 서버 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/OKsaiyowa/items/0f8c0fe030abf0b490ed텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)