Unity 3D как получить / опубликовать список из REST API - PullRequest
0 голосов
/ 18 ноября 2018

У меня проблема с получением / публикацией списка с / на REST-сервер с Unity 3D и C #.

Мой сервер:

from flask import Flask, jsonify
import requests, json

app = Flask(__name__)
url = "http://0.0.0.0:5000/"
list = ["1","2","3","4"]


@app.route('/')
def index():
    return "Hello"
@app.route('/list', methods=['GET'])
def get_tasks():
    return jsonify(list)
if __name__ == '__main__':
    app.run(host="0.0.0.0", port = 5000,debug=True)

Как скачать список объектов в Unity и сохранить его в переменной? Также, как я могу опубликовать / обновить другой список? https://docs.unity3d.com/Manual/UnityWebRequest-CreatingDownloadHandlers.html

с этим уроком я получил текстовый ответ "Hello", но он возвращает только "1" при использовании

byte[] results = www.downloadHandler.data;
Debug.Log(results)

изменить: мой клиент Python:

import json 
import requests

list = " "
api_url = 'http://ipaddress:5000/list/'
r = requests.get(url = api_url, json=list)
a = r.content

if "3" in a:
    print "found"

Когда клиент запускается, он печатает "найдено", поэтому он возвращает список ошибок. в Unity я получаю: [1,]

1 Ответ

0 голосов
/ 18 ноября 2018

Вы сказали, что полученные данные имеют следующий формат: ["1","2", etc.], и вы хотите, чтобы данные разделялись запятой в списке.

Во-первых, это просто текстовые данные.Получить текстовые данные из www.downloadHandler.text вместо www.downloadHandler.data.Удалите [ и ], а затем разделите последнюю строку запятой на массив или список.

string results = www.downloadHandler.text;
string trimmed = results.TrimStart('[').TrimEnd(']');
List<string> splitResult = trimmed.Split(',').ToList<string>();

Обратите внимание, что вам нужно включить using System.Linq; в верхней части кода, чтобы использоватьToList функция выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...