FileUploadResponse MakeRequest(string url, string tag, MultipartBuilder requestBodyBuilder, IDictionary <string, string> headers = null) { //RequestBody requestBody = requestBodyBuilder.Build(); CountingRequestBody requestBody = new CountingRequestBody(requestBodyBuilder.Build(), tag, this); var requestBuilder = new Request.Builder(); if (headers != null) { foreach (string key in headers.Keys) { if (!string.IsNullOrEmpty(headers[key])) { requestBuilder = requestBuilder.AddHeader(key, headers[key]); } } } Request request = requestBuilder .Url(url) .Post(requestBody) .Build(); OkHttpClient client = new OkHttpClient(); client.SetConnectTimeout(ConnectUploadTimeout, UploadTimeoutUnit); // connect timeout client.SetReadTimeout(SocketUploadTimeout, UploadTimeoutUnit); // socket timeout Response response = client.NewCall(request).Execute(); var responseString = response.Body().String(); var code = response.Code(); IDictionary <string, string> responseHeaders = new Dictionary <string, string>(); var rHeaders = response.Headers(); if (rHeaders != null) { var names = rHeaders.Names(); foreach (string name in names) { if (!string.IsNullOrEmpty(rHeaders.Get(name))) { responseHeaders.Add(name, rHeaders.Get(name)); } } } FileUploadResponse fileUploadResponse = new FileUploadResponse(responseString, code, tag, new ReadOnlyDictionary <string, string>(responseHeaders)); if (response.IsSuccessful) { FileUploadCompleted(this, fileUploadResponse); } else { FileUploadError(this, fileUploadResponse); } return(fileUploadResponse); }
MultipartBuilder PrepareRequest(IDictionary <string, string> parameters = null, string boundary = null) { MultipartBuilder requestBodyBuilder = null; if (string.IsNullOrEmpty(boundary)) { requestBodyBuilder = new MultipartBuilder() .Type(MultipartBuilder.Form); } else { requestBodyBuilder = new MultipartBuilder(boundary) .Type(MultipartBuilder.Form); } if (parameters != null) { foreach (string key in parameters.Keys) { if (parameters[key] != null) { requestBodyBuilder.AddFormDataPart(key, parameters[key]); } } } return(requestBodyBuilder); }
public void Submit(SubmissionManifest parameters) { WebRequest req = WebRequest.Create(parameters.ResolvedTransport); if (req is HttpWebRequest) { HttpWebRequest request = (HttpWebRequest)req; MultipartBuilder multipart = new MultipartBuilder(request); ITarget assignment = parameters.Assignment; foreach (string key in assignment.TransportParameters.Keys) { string value = assignment.TransportParameters[key]; string resolvedValue = parameters.ResolveParameter(value); if (key.StartsWith("$file.")) { string trueKey = key.Substring("$file.".Length); Stream stream = multipart.BeginWriteFile(trueKey, resolvedValue, "application/octet-stream"); parameters.PackageContentsIntoStream(stream); multipart.EndWriteFile(); } else { multipart.WriteParameter(key, resolvedValue); } } multipart.Close(); WebResponse response = request.GetResponse(); Stream respStream = response.GetResponseStream(); StringBuilder responseHolder = new StringBuilder(); StreamReader reader = new StreamReader(respStream, Encoding.UTF8); char[] buffer = new char[BufferSize]; int len; while ((len = reader.Read(buffer, 0, BufferSize)) > 0) { responseHolder.Append(buffer, 0, len); } response.Close(); this.response = responseHolder.ToString(); } }
/// <summary> /// Add files using the multipart content-type /// </summary> /// <param name="fileName">The file name and extension</param> /// <param name="fileType">The file type</param> /// <param name="folderId">The id of the folder</param> /// <param name="description">The description of the file</param> /// <param name="source">The source of the original file</param> /// <param name="data">The data contained in the file being uploaded</param> /// <returns>Returns the file Id associated with the uploaded file</returns> public string AddLibraryFilesMultipart(string fileName, FileType fileType, string folderId, string description, FileSource source, byte[] data) { if (string.IsNullOrEmpty(fileName)) { throw new IllegalArgumentException(ConstantContactClient.Resources.Errors.FileNameNull); } var extension = Path.GetExtension(fileName).ToLowerInvariant(); string[] fileTypes = new string[5] { ".jpeg", ".jpg", ".gif", ".png", ".pdf" }; if (!((IList <string>)fileTypes).Contains(extension)) { throw new IllegalArgumentException(ConstantContactClient.Resources.Errors.FileTypeInvalid); } if (string.IsNullOrEmpty(folderId) || string.IsNullOrEmpty(description)) { throw new IllegalArgumentException(ConstantContactClient.Resources.Errors.FieldNull); } if (data == null) { throw new IllegalArgumentException(ConstantContactClient.Resources.Errors.FileNull); } string result = null; string url = String.Concat(Settings.Endpoints.Default.BaseUrl, Settings.Endpoints.Default.MyLibraryFiles); byte[] content = MultipartBuilder.CreateMultipartContent(fileName, data, null, fileType.ToString(), folderId, description, source.ToString()); RawApiResponse response = RestClient.PostMultipart(url, UserServiceContext.AccessToken, UserServiceContext.ApiKey, content); if (response.IsError) { throw new ConstantContactClientException(response.GetErrorMessage()); } if (!response.IsError && response.StatusCode == System.Net.HttpStatusCode.Accepted) { string location = response.Headers["Location"]; int idStart = location.LastIndexOf("/") + 1; result = location.Substring(idStart); } return(result); }
MultipartBuilder PrepareRequest(IDictionary <string, string> parameters = null) { MultipartBuilder requestBodyBuilder = new MultipartBuilder() .Type(MultipartBuilder.Form); if (parameters != null) { foreach (string key in parameters.Keys) { if (parameters[key] != null) { requestBodyBuilder.AddFormDataPart(key, parameters[key]); } } } return(requestBodyBuilder); }
FileUploadResponse MakeRequest(string url, string tag, MultipartBuilder requestBodyBuilder, IDictionary <string, string> headers = null) { //RequestBody requestBody = requestBodyBuilder.Build(); CountingRequestBody requestBody = new CountingRequestBody(requestBodyBuilder.Build(), this); var requestBuilder = new Request.Builder(); if (headers != null) { foreach (string key in headers.Keys) { if (!string.IsNullOrEmpty(headers[key])) { requestBuilder = requestBuilder.AddHeader(key, headers[key]); } } } Request request = requestBuilder .Url(url) .Post(requestBody) .Build(); OkHttpClient client = new OkHttpClient(); client.SetConnectTimeout(5, TimeUnit.Minutes); // connect timeout client.SetReadTimeout(5, TimeUnit.Minutes); // socket timeout Response response = client.NewCall(request).Execute(); var responseString = response.Body().String(); var code = response.Code(); var fileUploadResponse = new FileUploadResponse(responseString, code, tag); if (response.IsSuccessful) { FileUploadCompleted(this, fileUploadResponse); return(fileUploadResponse); } else { FileUploadError(this, fileUploadResponse); return(fileUploadResponse); } }
/// <summary> /// Create a Remove Contacts Multipart Activity /// </summary> /// <param name="fileName">The file name to be imported</param> /// <param name="fileContent">The file content to be imported</param> /// <param name="lists">Array of list's id</param> /// <returns>Returns an Activity object.</returns> public Activity RemoveContactsMultipartActivity(string fileName, byte[] fileContent, IList <string> lists) { if (string.IsNullOrEmpty(fileName)) { throw new IllegalArgumentException(CTCT.Resources.Errors.FileNameNull); } var extension = Path.GetExtension(fileName).ToLowerInvariant(); string[] fileTypes = new string[4] { ".txt", ".csv", ".xls", ".xlsx" }; if (!((IList <string>)fileTypes).Contains(extension)) { throw new IllegalArgumentException(CTCT.Resources.Errors.FileTypeInvalid); } if (fileContent == null) { throw new IllegalArgumentException(CTCT.Resources.Errors.FileNull); } if (lists == null || lists.Count.Equals(0)) { throw new IllegalArgumentException(CTCT.Resources.Errors.ActivityOrId); } string url = String.Concat(Settings.Endpoints.Default.BaseUrl, Settings.Endpoints.Default.RemoveFromListsActivity); byte[] data = MultipartBuilder.CreateMultipartContent(fileName, fileContent, lists); RawApiResponse response = RestClient.PostMultipart(url, UserServiceContext.AccessToken, UserServiceContext.ApiKey, data); try { var activity = response.Get <Activity>(); return(activity); } catch (Exception ex) { throw new CtctException(ex.Message, ex); } }
/// <summary> /// Create a Remove Contacts Multipart Activity /// </summary> /// <param name="accessToken">Constant Contact OAuth2 access token</param> /// <param name="apiKey">The API key for the application</param>> /// <param name="fileName">The file name to be imported</param> /// <param name="fileContent">The file content to be imported</param> /// <param name="lists">Array of list's id</param> /// <returns>Returns an Activity object.</returns> public Activity RemoveContactsMultipartActivity(string accessToken, string apiKey, string fileName, byte[] fileContent, IList <string> lists) { Activity activity = null; string url = String.Concat(Config.Endpoints.BaseUrl, Config.Endpoints.RemoveFromListsActivity); byte[] data = MultipartBuilder.CreateMultipartContent(fileName, fileContent, lists); CUrlResponse response = RestClient.PostMultipart(url, accessToken, apiKey, data); if (response.IsError) { throw new CtctException(response.GetErrorMessage()); } if (response.HasData) { activity = response.Get <Activity>(); } return(activity); }
/// <summary> /// Add files using the multipart content-type /// </summary> /// <param name="accessToken">Access token.</param> /// <param name="apiKey">The API key for the application</param> /// <param name="fileName">The file name and extension</param> /// <param name="fileType">The file type</param> /// <param name="folderId">The id of the folder</param> /// <param name="description">The description of the file</param> /// <param name="source">The source of the original file</param> /// <param name="data">The data contained in the file being uploaded</param> /// <returns>Returns the file Id associated with the uploaded file</returns> public string AddLibraryFilesMultipart(string accessToken, string apiKey, string fileName, FileType fileType, string folderId, string description, FileSource source, byte[] data) { string result = null; string url = String.Concat(Config.Endpoints.BaseUrl, Config.Endpoints.MyLibraryFiles); byte[] content = MultipartBuilder.CreateMultipartContent(fileName, data, null, fileType.ToString(), folderId, description, source.ToString()); CUrlResponse response = RestClient.PostMultipart(url, accessToken, apiKey, content); if (response.IsError) { throw new CtctException(response.GetErrorMessage()); } if (!response.IsError && response.StatusCode == System.Net.HttpStatusCode.Accepted) { string location = response.Headers["Location"]; int idStart = location.LastIndexOf("/") + 1; result = location.Substring(idStart); } return(result); }
public static JSONObject uploadImage(File file) { try { final MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png"); RequestBody req = new MultipartBuilder().SetType(MultipartBody.FORM).addFormDataPart("userid", "8457851245") .addFormDataPart("userfile", "profile.png", RequestBody.create(MEDIA_TYPE_PNG, file)).build(); Request request = new Request.Builder() .Url("url") .Post(req) .Build(); OkHttpClient client = new OkHttpClient(); Response response = client.newCall(request).execute(); Log.d("response", "uploadImage:" + response.body().string()); return(new JSONObject(response.body().string())); } catch (UnknownHostException | UnsupportedEncodingException e) { Log.e(TAG, "Error: " + e.getLocalizedMessage()); } catch (Exception e)