private void ConfigureMultipart(RestSharp.RestRequest request, string fileParamName, RestMultipart restMultipart) { RestMultipart.RestMultipartType type = restMultipart.Type; switch (type) { case RestMultipart.RestMultipartType.FILE: string fileName = null; try { fileName = restMultipart.Value; using (var fileContent = new FileStream(fileName, FileMode.Open)) { request.AddFile(fileName, fileContent.CopyTo, fileName, restMultipart.ContentType); } LOG.Info("Configure Multipart file upload paramName={0} : ContentType={1} for file={2} ", new string[] { fileParamName, restMultipart.ContentType, fileName }); break; } catch (FileNotFoundException e) { throw new System.ArgumentException("File not found: " + fileName, e); } case RestMultipart.RestMultipartType.STRING: // According to a comment on RestSharp issue 524, // https://github.com/restsharp/RestSharp/issues/524 , it's only possible to // add string data in multipart form data using ParameterType GetOrPost. // ParameterType RequestBody doesn't work. request.AddParameter(fileParamName, restMultipart.Value, restMultipart.ContentType, ParameterType.GetOrPost); LOG.Info("Configure Multipart String upload paramName={0}: ContentType={1} ", fileParamName, restMultipart.ContentType); break; default: throw new System.ArgumentException("Unknonw Multipart Type: " + type); break; } }
public override bool Equals(object o) { if (this == o) { return(true); } if (!(o is RestMultipart)) { return(false); } RestMultipart that = (RestMultipart)o; if (!_value.Equals(that._value)) { return(false); } if (_contentType != null ? _contentType != that._contentType : that._contentType != null) { return(false); } return(_charset != null ? _charset == that._charset : that._charset == null); }