【问题标题】:How do I convert a WWWForm that will be a parameter for UploadHandlerRaw into a byte array?如何将作为 UploadHandlerRaw 参数的 WWWForm 转换为字节数组?
【发布时间】:2018-08-31 21:23:16
【问题描述】:

我创建了一个继承 UnityWebRequest 的类。 它只有string urlstring methodbyte[] form 作为参数。 我想把 WWWForm 对象放在这个byte[] form 中。当我检查元数据时,似乎 WWWForm 是由一个字典组成的。 如果我可以检查 Unity 内部源代码,我会自己解决它,但我不能。 我该如何解决这个问题?我想将WWWForm 用于application/x-www-form-urlencoded。我想找到一种将 WWWForm 转换为字节数组的方法。对不起。我的英语很差。如果有其他方法,请告诉我。

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    我想找到一种将 WWWForm 转换为字节数组的方法

    这可以通过WWWForm.data 属性来完成。

    你的WWWForm

    WWWForm form = new WWWForm();
    form.AddField( "blah-blah-blah", "value" );
    

    WWWForm 转换为字节数组:

    byte[] rawData = form.data;
    

    UploadHandlerRaw一起使用:

    WWWForm form = new WWWForm();
    form.AddField("blah-blah-blah", "value");
    byte[] rawData = form.data;
    
    string url = "YOUR URL";
    var uwr = new UnityWebRequest(url, "POST");
    uwr.uploadHandler = (UploadHandler)new UploadHandlerRaw(rawData);
    uwr.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
    uwr.SetRequestHeader("Content-Type", "application/json");
    
    //Send the request then wait here until it returns
    yield return uwr.SendWebRequest();
    
    if (uwr.isNetworkError)
    {
        Debug.Log("Error While Sending: " + uwr.error);
    }
    else
    {
        Debug.Log("Received: " + uwr.downloadHandler.text);
    }
    

    【讨论】:

    • 太棒了!如果我能更好地查看元数据,我就可以解决它。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 2022-01-23
    相关资源
    最近更新 更多