Esempio n. 1
0
    public static void ShareComponent(string url, string key, byte[] AudioBytes, string json, OnRequestFinishedDelegate onRequestFinished)
    {
        Debug.Log("上传用户分享文件  " + json);
        HTTPRequest request = new HTTPRequest(new Uri(url), HTTPMethods.Post, onRequestFinished);

        byte[] jsonBytes = System.Text.Encoding.UTF8.GetBytes(json);
        request.AddField("enctype", "multipart/form-data");
        request.AddField("key", key);
        request.AddBinaryData("audioFiles", AudioBytes, "vsz.wav", "Audio/wav");
        request.AddBinaryData("jsonFile", jsonBytes, "vsz.json", "json");
        request.Send();
    }
Esempio n. 2
0
    private IEnumerator LoadVideo(WWW www, string filename, string email)
    {
        yield return(www);

        Debug.Log("Got " + www.text);

        if (www.error == null)
        {
            videoBytes = www.bytes;

            string url     = server + uploadPath;
            var    request = new HTTPRequest(new Uri(url),
                                             HTTPMethods.Post,
                                             OnVideoRequestFinished);


            request.AddBinaryData("image", videoBytes, filename);
            request.AddField("send_email", email);
//			request.AddField("filename", filename);
            request.OnUploadProgress = OnUploadProgress;
            request.Send();
            sendVideoButtonText.text = "Sending...";

            filenameByRequest[request] = filename;
        }
        else
        {
            Debug.LogError(www.error);
        }
    }
Esempio n. 3
0
        /// <summary>
        /// put 对象
        /// </summary>
        /// <param name="url">远程地址</param>
        /// <param name="key">文件路径 无/ </param>
        /// <param name="file"></param>
        public void PutObject(string url, string key, byte[] file, UnityAction <HTTPRequest, HTTPResponse> complete = null)
        {
            CheckCosKey(() =>
            {
                string _url = url + key;

                Debug.LogFormat("[QCloudCos].PutObject url  {0} . ", _url);

                HTTPRequest request = new HTTPRequest(new Uri(_url), HTTPMethods.Put, (req, resp) =>
                {
                    if (resp.StatusCode == 200)
                    {
                        Debug.LogFormat("[QCloudCos].PutObject complete  {0} . ", _url);
                    }
                    else
                    {
                        Debug.LogErrorFormat("[QCloudCos].PutObject code error   url :''{0}' , code : '{1}' , data :'{2}' . ", _url, resp.StatusCode, resp.DataAsText);
                    }
                    if (complete != null)
                    {
                        complete.Invoke(req, resp);
                    }
                });
                string sign = GetSign("put", "/" + key, "", "");
                request.AddHeader("x-cos-security-token", cosKeyData.sessionToken);
                request.AddHeader("Authorization", sign);
                request.AddBinaryData("file", file);
                request.OnUploadProgress = OnUploadProgressCallback;
                request.Send();
            });
        }
Esempio n. 4
0
    IEnumerator UploadPNG()
    {
        // We should only read the screen after all rendering is complete
        yield return(new WaitForEndOfFrame());

        Debug.Log("UploadPNG is called");

        var tex = new Texture2D(1280, 720);

        WWW testImage = new WWW("file://" + Application.persistentDataPath + '/' + "test_image.png");

        yield return(testImage);

        Debug.Log("the image file info is " + testImage.text);

        testImage.LoadImageIntoTexture(tex);

        Debug.Log("sending the image to the server...");
        var request = new HTTPRequest(new System.Uri(CloudSightApiUrl), HTTPMethods.Post, OnRequestFinished);

        request.SetHeader("Authorization", "CloudSight " + CloudSightAPIkey);
        request.AddBinaryData("image_request[image]", tex.EncodeToPNG(), "test_image.png");
        request.AddField("image_request[locale]", "en_US");
        request.Send();
    }
Esempio n. 5
0
    /// <summary>
    /// 上传文件
    /// </summary>
    /// <param name="url"></param>
    /// <param name="bytes"></param>
    /// <param name="ObjName"></param>
    /// <param name="ObjType"></param>
    /// <param name="onRequestFinished"></param>
    public static void UpLoadObj(string url, byte[] bytes, string ObjName, string ObjType, OnRequestFinishedDelegate onRequestFinished)
    {
        HTTPRequest request = new HTTPRequest(new Uri(url), HTTPMethods.Post, onRequestFinished);

        request.AddField("enctype", "multipart/form-data");
        request.AddBinaryData("file", bytes, ObjName, ObjType);
        request.Send();
    }
Esempio n. 6
0
    /// <summary>
    /// 修改用户头像
    /// </summary>
    /// <param name="url"></param>
    /// <param name="bytes"></param>
    /// <param name="textureName"></param>
    /// <param name="onRequestFinished"></param>
    /// <param name="token"></param>
    public static void ModifiUserIcon(string url, byte[] bytes, string textureName, OnRequestFinishedDelegate onRequestFinished, string token = null)
    {
        HTTPRequest request = new HTTPRequest(new Uri(url), HTTPMethods.Post, onRequestFinished);

        request.AddField("enctype", "multipart/form-data");
        request.AddBinaryData("file", bytes, textureName, "image/png");
        if (!string.IsNullOrEmpty(token))
        {
            request.SetHeader("Authorization", token);
        }
        request.Send();
    }
Esempio n. 7
0
        public static HTTPRequest HttpsImagePost(string uri, byte[] data, OnRequestFinishedDelegate onRequestFinishedDelegate)
        {
            HTTPRequest httpRequest = new HTTPRequest(new Uri(uri), HTTPMethods.Post, onRequestFinishedDelegate);

            httpRequest.UseAlternateSSL    = true;
            httpRequest.StreamFragmentSize = 100 * 1024;

            httpRequest.AddHeader("did", SystemInfoUtil.getDeviceUniqueIdentifier());
            httpRequest.AddHeader("md5at", GameCache.Instance.strToken);
            httpRequest.AddField("user_id", $"{GameCache.Instance.nUserId}");
            httpRequest.AddBinaryData("file", data, "picture.png", "image/png");
            // Log.Debug(httpRequest.DumpHeaders());
            return(httpRequest.Send());
        }
Esempio n. 8
0
    // called from Upload button
    public void TestPost()
    {
        string url = "http://localhost:3000/upload";

        for (int i = 1; i < 3; i++)
        {
            string    filename;
            Texture2D tex;
            if (i == 1)
            {
                tex      = (Texture2D)image1.texture;
                filename = filename1;
            }
            else
            {
                tex      = (Texture2D)image2.texture;
                filename = filename2;
            }

            // use bestHTTP
            var request = new HTTPRequest(new Uri(url),
                                          HTTPMethods.Post,
                                          OnRequestFinished);


            request.AddBinaryData("image", tex.EncodeToPNG(), filename);
            request.AddField("send_email", textField.text);
            request.AddField("filename", filename);
            request.OnUploadProgress = OnUploadProgress;
            request.Send();
            sendButtonText.text = "Sending...";

            filenameByRequest[request] = filename;
        }

/*
 *              WWWForm form = new WWWForm();
 *
 *              form.AddField("send_email",textField.text);
 *
 *              string url = "http://localhost:3000/upload";
 *
 *              Texture2D tex = (Texture2D) image.texture;
 *
 *              byte[] bytes = tex.EncodeToJPG();
 *              form.AddBinaryData("file", bytes, "testupload.jpg", "image/jpg");
 *
 *              StartCoroutine(Post(url,form));
 */
    }
Esempio n. 9
0
    void UploadVideo()
    {
        HTTPRequest request = new HTTPRequest(new Uri(qiniu_api), HTTPMethods.Post, UploadVideoRequestFinished);

        try
        {
            if (_isMock)
            {
                request.AddBinaryData("file", GetVideoData(Application.dataPath + "/Out/1.mp4"));
            }
            else
            {
                request.AddBinaryData("file", GetVideoData(_filePath), "Video.mp4");
            }
        }
        catch (Exception e) {
            Debug.Log(e.Message);
            _onApiError.Invoke("File read Error !" + e.Message);
        }

        request.AddHeader("Accept", "application/json");
        request.AddField("token", _token);
        request.Send();
    }
Esempio n. 10
0
/// <summary>
/// 上传第三方用户信息
/// </summary>
/// <param name="url"></param>
/// <param name="post"></param>
/// <param name="bytes">用户头像</param>
/// <param name="textureName"></param>
/// <param name="onRequestFinished"></param>
    public static void UploadUserInfo(string url, KeyValuePair <string, string>[] post, byte[] bytes, string textureName, OnRequestFinishedDelegate onRequestFinished)
    {
        HTTPRequest request = new HTTPRequest(new Uri(url), HTTPMethods.Post, onRequestFinished);

        if (post != null)
        {
            foreach (var item in post)
            {
                request.AddField(item.Key, item.Value);
            }
        }
        request.AddField("enctype", "multipart/form-data");
        request.AddBinaryData("file", bytes, textureName, "image/png");
        request.Send();
    }
Esempio n. 11
0
        /// <summary>
        /// 发送POST 方式的请求
        /// </summary>
        /// <param name="onRequestFinishedDelegate">回调函数</param>
        /// <param name="urlString">请求地址</param>
        /// <param name="paramsDict">请求的普通参数</param>
        /// <param name="parameterModel">请求需要发送的文件数据</param>
        /// <returns>请求对象</returns>
        private HTTPRequest SendPostType(OnRequestFinishedDelegate onRequestFinishedDelegate, string urlString,
                                         Dictionary <string, string> paramsDict, params FileParamModel[] parameterModel)
        {
            HTTPRequest request = new HTTPRequest(new Uri(urlString), HTTPMethods.Post, onRequestFinishedDelegate);



            //普通Post参数

            //文件参数
            if (parameterModel != null && parameterModel.Length > 0)
            {
                foreach (FileParamModel model in parameterModel)
                {
                    request.AddBinaryData(model.FieldName, model.Content, model.FileName, model.MimeType);
                }
                if (paramsDict != null && paramsDict.Count > 0)
                {
                    request.SetHeader("Content-Type", "application/json");
                    foreach (KeyValuePair <string, string> keyValuePair in paramsDict)
                    {
                        request.AddField(keyValuePair.Key, keyValuePair.Value);
                    }
                }
                Debug.Log("有文件参数" + parameterModel.Length);
            }
            else
            {
                request.SetHeader("Content-Type", "application/json");
                RequestModel requestModel = new RequestModel();
                if (paramsDict != null && paramsDict.Count > 0)
                {
                    //foreach (KeyValuePair<string, string> keyValuePair in paramsDict)
                    //{
                    //    requestModel.AddData(keyValuePair.Key, keyValuePair.Value);
                    //}

                    requestModel.data = paramsDict;
                }
                Debug.Log(requestModel.ObjectToJson());
                request.RawData = requestModel.GetBytes();
            }
            //发送
            return(request.Send());
        }
Esempio n. 12
0
        /// <summary>
        /// Sends the write board.
        /// 掲示板書き込み時にかえってくるのは成功かどうかだけなので
        /// </summary>
        /// <returns>The write board.</returns>
        /// <param name="url">URL.</param>
        /// <param name="reqPostDatas">Req post datas.</param>
        /// <param name="reqPostBinaryDatas">Req post binary datas.</param>
        /// <param name="callback">Callback.</param>
        public static string SendWriteBoard(string url, Dictionary <string, string> reqPostDatas, Dictionary <string, Texture2D> reqPostBinaryDatas, Action <string> callback)
        {
            _reqSuccess = false;

            var request = new HTTPRequest(new Uri(url), HTTPMethods.Post, (req, resp) =>
            {
                switch (req.State)
                {
                // The request finished without any problem.
                case HTTPRequestStates.Finished:
                    if (resp.DataAsText.Contains("error") == true)
                    {
                        var err = StringLib.JsonToObject <ErrorEntity.Result> (resp.DataAsText);
                        //サーバー系のエラーキャッチ
                        if (err.result.error != null)
                        {
                            PopUpWindow(err.result.error [0]);
                            break;
                        }
                    }

                    callback(resp.DataAsText);
                    _reqSuccess = true;
                    break;

                // The request finished with an unexpected error.
                // The request's Exception property may contain more information about the error.
                case HTTPRequestStates.Error:
                    Debug.LogError("Request Finished with Error! " +
                                   (req.Exception != null ?
                                    (req.Exception.Message + "\n" +
                                     req.Exception.StackTrace) :
                                    "No Exception"));
                    break;

                // The request aborted, initiated by the user.
                case HTTPRequestStates.Aborted:
                    Debug.LogWarning("Request Aborted!"); break;

                // Ceonnecting to the server timed out.
                case HTTPRequestStates.ConnectionTimedOut:
                    Debug.LogError("Connection Timed Out!"); break;

                // The request didn't finished in the given time.
                case HTTPRequestStates.TimedOut:
                    Debug.LogError("Processing the request Timed Out!"); break;
                }
            });

            if (reqPostDatas.Count > 0)
            {
                foreach (var param in reqPostDatas)
                {
                    request.AddField(param.Key, param.Value);
                }
            }

            if (reqPostBinaryDatas.Count > 0)
            {
                foreach (var param in reqPostBinaryDatas)
                {
                    Texture2D expectedImage = param.Value;
                    byte[]    binaryData    = expectedImage.EncodeToJPG();

                    request.AddBinaryData(param.Key, binaryData, param.Key, "image/jpeg");
                }
            }

            request.ConnectTimeout = TimeSpan.FromMilliseconds(_connectTimeout);
            request.Timeout        = TimeSpan.FromSeconds(_reqTimeOut);
            request.DisableCache   = true;
            request.Send();
            return("");
        }
Esempio n. 13
0
        /// <summary>
        /// Send the specified url, reqPostDatas, reqPostBinaryDatas and callback.
        /// </summary>
        /// <param name="url">URL.</param>
        /// <param name="reqPostDatas">Req post datas.</param>
        /// <param name="reqPostBinaryDatas">Req post binary datas.</param>
        /// <param name="callback">Callback.</param>
        /// <typeparam name="T">The 1st type parameter.</typeparam>
        public static T Send <T> (string url, Dictionary <string, string> reqPostDatas, Dictionary <string, Texture2D> reqPostBinaryDatas, Action <T> callback)
        {
            // ネットワークの状況により処理を変更
            if (Application.internetReachability == NetworkReachability.NotReachable)
            {
                //ネットワークに接続不可な場合の処理
                PopUpWindow(LocalMsgConst.NETWORK_ERROR_TEXT);
                return(default(T));
            }

            _reqSuccess = false;

            var request = new HTTPRequest(new Uri(url), HTTPMethods.Post, (req, resp) =>
            {
                switch (req.State)
                {
                // The request finished without any problem.
                case HTTPRequestStates.Finished:
                    if (resp.DataAsText.Contains("error") == true)
                    {
                        var err = StringLib.JsonToObject <ErrorEntity.Result> (resp.DataAsText);
                        //サーバー系のエラーキャッチ
                        if (err.result.error != null)
                        {
                            Debug.Log(err.result.error [0] + " Error Error Error  ");
                            PopUpWindow(err.result.error [0]);
                            break;
                        }
                    }

                    Debug.Log("Request Finished Successfully!\n" + req.Response);
                    callback(StringLib.JsonToObject <T>(resp.DataAsText));
                    _reqSuccess = true;
                    break;

                // The request finished with an unexpected error.
                // The request's Exception property may contain more information about the error.
                case HTTPRequestStates.Error:
                    Debug.LogError("Request Finished with Error! " +
                                   (req.Exception != null ?
                                    (req.Exception.Message + "\n" +
                                     req.Exception.StackTrace) :
                                    "No Exception"));
                    break;

                // The request aborted, initiated by the user.
                case HTTPRequestStates.Aborted:
                    Debug.LogWarning("Request Aborted!"); break;

                // Ceonnecting to the server timed out.
                case HTTPRequestStates.ConnectionTimedOut:
                    Debug.LogError("Connection Timed Out!"); break;

                // The request didn't finished in the given time.
                case HTTPRequestStates.TimedOut:
                    Debug.LogError("Processing the request Timed Out!"); break;
                }
            });

            //HTTPMethods.Post
            // Very little time, for testing purposes:
            Debug.Log(url);


            if (reqPostDatas.Count > 0)
            {
                foreach (var param in reqPostDatas)
                {
                    Debug.Log(param.Key + " == " + param.Value);
                    request.AddField(param.Key, param.Value);
                    //					request.AddBinaryData ();
                }
            }


            if (reqPostBinaryDatas.Count > 0)
            {
                foreach (var param in reqPostBinaryDatas)
                {
                    Texture2D expectedImage = param.Value;

                    byte[] binaryData = expectedImage.EncodeToJPG();

                    request.AddBinaryData(param.Key, binaryData, param.Key, "image/jpeg");
                }
            }

            request.ConnectTimeout = TimeSpan.FromMilliseconds(_connectTimeout);
            request.Timeout        = TimeSpan.FromSeconds(_reqTimeOut);
            request.DisableCache   = true;
            request.Send();


            return(default(T));
        }