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

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

如何在 Unity3D 中使用 PUT 方法更新用戶圖片

如何在 Unity3D 中使用 PUT 方法更新用戶圖片

C#
海綿寶寶撒 2022-08-20 17:10:10
我是Unity3D的初學者;我必須開發一個移動應用程序,我需要管理用戶個人資料數據;我必須使用REST服務與服務器通信這些數據。當我從我的應用程序發送Json(例如姓名,電子郵件,電話號碼等)時,一切正常,但我無法更新個人資料圖片。我需要的是:內容類型=多部分/表單數據鍵=“profile_picture”,值=file_to_upload(不是路徑)我閱讀了很多關于Unity中的網絡的信息,并嘗試了UnityWebRequest,List,WWWform的不同組合,但似乎沒有什么適用于這種PUT服務。UnityWebRequest www = new UnityWebRequest(URL + user.email, "PUT");     www.SetRequestHeader("Content-Type", "multipart/form-data");     www.SetRequestHeader("AUTHORIZATION", authorization);    //i think here i'm missing the correct way to set up the content我可以正確地模擬Postman的更新,所以這不是服務器的問題;我很確定問題是我無法在應用程序內轉換此邏輯。從郵遞員上傳正確工作(1)從郵遞員上傳正確工作(2)任何類型的幫助和代碼建議將不勝感激。謝謝
查看完整描述

1 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

使用 Put,您通常只發送文件數據,而不發送表單。


您可以使用 UnityWebRequest.Post 添加多部分表單


IEnumerator Upload() 

{

    List<IMultipartFormSection> formData = new List<IMultipartFormSection>();

    formData.Add(new MultipartFormFileSection("profile_picture", byte[], "example.png", "image/png"));


    UnityWebRequest www = UnityWebRequest.Post(url, formData);


    // change the method name

    www.method = "PUT"; 


    yield return www.SendWebRequest();


    if(www.error) 

    {

        Debug.Log(www.error);

    }

    else 

    {

        Debug.Log("Form upload complete!");

    }

}

使用多部分表單文件部分


或者,您可以使用 WWWForm


IEnumerator Upload()

{

    WWWForm form = new WWWForm();

    form.AddBinaryData("profile_picture", bytes, "filename.png", "image/png");


    // Upload via post request

    var www = UnityWebRequest.Post(screenShotURL, form);


    // change the method name

    www.method = "PUT";        


    yield return www.SendWebRequest();


    if (www.error) 

    {

        Debug.Log(www.error);

    }

    else 

    {

        Debug.Log("Finished Uploading Screenshot");

    }

}

使用 WWWForm.AddBinaryData


請注意,對于用戶身份驗證,您必須正確編碼憑據:


string authenticate(string username, string password)

{

    string auth = username + ":" + password;

    auth = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(auth));

    auth = "Basic " + auth;

    return auth;

}


www.SetRequestHeader("AUTHORIZATION", authenticate("user", "password"));


查看完整回答
反對 回復 2022-08-20
  • 1 回答
  • 0 關注
  • 185 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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