亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

填充數組(列表)以將調用從 C# 發送到 php

填充數組(列表)以將調用從 C# 發送到 php

C#
牛魔王的故事 2023-07-09 16:31:55
因此,我將參數從 unity 傳遞到 PHP API,一切都很好,但現在我想將其作為數組傳遞,因此在這個方法中,我聲明了我的列表并嘗試使用正確的參數發送請求tokenID、address和value(最后 3 個)需要從聲明的列表中填充,但我不知道如何做到這一點。任何幫助表示贊賞public List<string> recipientAdvancedAddress = new List<string>();public List<string> tokenAdvancedSend = new List<string>();public List<string> valueAdvancedSend = new List<string>();public void Send(){    StartCoroutine(SendAsync(userSession, senderAdvancedID, tokenAdvancedSend, recipientAdvancedAddress, valueAdvancedSend));}IEnumerator SendAsync(string session, int senderID, List<string> tokenID, List<string> addresses, List<string> value){    CryptoFilter cryptoFilter = new CryptoFilter();    cryptoFilter.AddParam("action", "advancedSendFT");    cryptoFilter.AddParam("session", session);    cryptoFilter.AddParam("senderID", $"{senderID}");    cryptoFilter.AddParam("tokenID", tokenID);    cryptoFilter.AddParam("addresses", addresses);    cryptoFilter.AddParam("value", value);    using (UnityWebRequest webRequest = UnityWebRequest.Post($"http://{SERVER_ADDR}/tsd/api.php", cryptoFilter.GetRequestPayload()))        {            yield return webRequest.SendWebRequest();            var result = webRequest.downloadHandler.text;            // Decrypt the response from the server.            result = cryptoFilter.GetResponsePayload(result);            sendItem data = JsonConvert.DeserializeObject<sendItem>(result);            if (!data.error)                txID = data.id;        }}這是錯誤: https: //i.ibb.co/frNR5tF/error.png這是 CryptoFilter.cs 中的方法class CryptoFilter{    // Encrypt & Decrypt Engine    AES256 aes = new AES256();    // Request parameters    Dictionary<string, string> request = new Dictionary<string, string>();    /*     *     * Add a parameter.     *      */    public void AddParam(string name, string value)    {        if (value != "")            request.Add(name, value);    }順便說一句,我不能在主腳本中執行 foreach 嗎?所以如果我有 1 個 tokenID 就可以了,但是當我需要將 2 個 tokenID 發送到 2 個不同的地址時,這就是我想要實現的目標
查看完整描述

1 回答

?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

AddParam 方法的重載怎么樣:

AddParam(List<string>)

或者通用版本:

AddParam(List<T>)

甚至:

AddParam(Collection<T>)

我想我不太明白你在問什么,但在這個方法中,你也許可以循環遍歷這些項目并用它們做你已經在做的事情。

編輯:看起來你最終需要一個 json 。為此,您可以使用 Unity 的內置序列化。首先創建一個表示 DTO(數據傳輸對象)的類,然后將其序列化為 json 字符串。

[Serializable]

public class CryptoFilter

{

    public string action;

    // other string fields


    public List<string> addresses;

    // other string list fields


    public CryptoFilter(string action, List<string> addresses)

    {

        this.action = action;

        this.addresses = addresses;

    }

}

然后使用:


CryptoFilter cryptoFilter = new CryptoFilter(...);

string json = JsonUtility.ToJson(cryptoFilter);

編輯:作為請求的字符串到字符串字典不適用于列表。使用可序列化的類,就像我為此發布的那樣。只需將其稱為 Request 等,而不是 CryptoFilter。然后創建該對象并將其設置為 CryptoFilter 一次,而不是多次調用 AddParam。


查看完整回答
反對 回復 2023-07-09
  • 1 回答
  • 0 關注
  • 122 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號