UnityWebRequest upload files, json string

	// 上传文件
    private IEnumerator UploadRequest(string url, string imgpath, UnityAction<string> callback)
    {
    
    
        WWWForm form = new WWWForm();
        form.AddBinaryData("Image", File.ReadAllBytes(imgpath), Path.GetFileName(imgpath));
        using (UnityWebRequest www = UnityWebRequest.Post(url, form))
        {
    
    
            // 必须要这行
            www.SetRequestHeader("Content-Type","application/octet-stream");
            yield return www.SendWebRequest();

            if (www.isNetworkError || www.isHttpError)
            {
    
    
                callback?.Invoke(null);
            }
            else
            {
    
    
                callback?.Invoke(www.downloadHandler.text);
            }
        }
    }

    // 发送 json 字符串
    private IEnumerator SendMsgRequest(string url, string msg, UnityAction<string> callback)
    {
    
    
        using (UnityWebRequest www = UnityWebRequest.Post(url,UnityWebRequest.kHttpVerbPOST))
        {
    
    
            www.uploadHandler = new UploadHandlerRaw(Encoding.UTF8.GetBytes(string.Format("{
    
    { \"content\":\"{0}\" }}",msg)));
            //www.downloadHandler = new DownloadHandlerBuffer();
            www.SetRequestHeader("Content-Type", "application/json;charset=utf-8");
            yield return www.SendWebRequest();

            if (www.isNetworkError || www.isHttpError)
            {
    
    
                callback?.Invoke(null);
            }
            else
            {
    
    
                callback?.Invoke(www.downloadHandler.text);
            }
        }
    }

Guess you like

Origin blog.csdn.net/baidu_38392815/article/details/123506881