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(); }
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); } }
/// <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(); }); }
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(); }
/// <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(); }
/// <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(); }
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()); }
// 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)); */ }
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(); }
/// <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(); }
/// <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()); }
/// <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(""); }
/// <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)); }