【问题标题】:Algolia - Unity/C# | How to use REST API in UnityAlgolia - Unity/C# |如何在 Unity 中使用 REST API
【发布时间】:2019-07-21 11:14:13
【问题描述】:

我正在尝试在 Unity 中使用 Algolia 的 PLACES REST API。 https://community.algolia.com/places/api-clients.html#rest-api

文档提供了如何使用它的示例:

$ curl -X POST ‘https://places-dsn.algolia.net/1/places/query’ 
-H ‘X-Algolia-Application-Id: YourApplicationId’ 
-H ‘X-Algolia-API-Key: YourAPIKey’ 
–data ‘{“query”: “Paris”}’

使用UnityWebRequest,语法如下:

UnityWebRequest www = UnityWebRequest.Post("https://places-dsn.algolia.net/1/places/query", form);
www.SetRequestHeader("X-Algolia-Application-Id", "XXXXX");
www.SetRequestHeader("X-Algolia-API-Key", "XXXXXX");

表单所在的位置:

Unity WWW表单

WWWForm form = new WWWForm();
form.AddField("data", "{\"query\": \"Paris\"}");
AND
WWWForm form = new WWWForm();
form.AddField("query", "Paris");

字符串

"{\"query\": \"Paris\"}"

字符串 json

JsonUtility.ToJson(new AlgoliaQuery { query = "paris" });

连接成功,但我一直收到错误消息

{"message":"lexical error: invalid char in json text. Around '%7b%22quer' near line:1 column:1","status":400}

根据尝试的类型,无效字符位置的错误会有所不同。

拜托,如果你能提供任何帮助,那就太棒了! 谢谢!

【问题讨论】:

    标签: rest api unity3d webrequest algolia


    【解决方案1】:

    我得到了答案! https://forum.unity.com/threads/unitywebrequest-post-url-jsondata-sending-broken-json.414708/

    var request = new UnityWebRequest("https://places-dsn.algolia.net/1/places/query", "POST");
    byte[] bodyRaw = Encoding.UTF8.GetBytes(query);
    request.uploadHandler = (UploadHandler)new UploadHandlerRaw(bodyRaw);
    request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
    request.SetRequestHeader("Content-Type", "application/json");
    request.SetRequestHeader("X-Algolia-Application-Id", "XXXXXX");
    request.SetRequestHeader("X-Algolia-API-Key", "XXXXXXX");
    yield return request.SendWebRequest(); 
    

    现在可以了。我希望这对某人有用。

    【讨论】:

      【解决方案2】:

      如果 Unity 项目可以利用 .NET Standard 或 .NET 4.5,您可以直接使用 Algolia .NET API client 在您的项目中嵌入 Algolia 搜索。

      这是我使用 Algolia 和 Unity 制作的 sample application。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-06
        • 1970-01-01
        • 2016-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多