Skip to content

Commit 17764dc

Browse files
author
Michael Hallett
committed
Cleaned up the idea from PR restsharp#639 and some of the code and added to it
1 parent 6e4ece8 commit 17764dc

File tree

4 files changed

+13
-72
lines changed

4 files changed

+13
-72
lines changed

.nuget/RestSharp.Build.dll

0 Bytes
Binary file not shown.

RestSharp/Http.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ private void AddSharedHeaderActions()
240240
#endif
241241

242242
#if FRAMEWORK
243-
restrictedHeaderActions.Add("Range", (r, v) => { AddRange(r, v); });
243+
restrictedHeaderActions.Add("Range", AddRange);
244244
#endif
245245
}
246246

RestSharp/IRestRequest.cs

+6-14
Original file line numberDiff line numberDiff line change
@@ -136,37 +136,29 @@ public interface IRestRequest
136136
/// </summary>
137137
/// <param name="name">The parameter name to use in the request</param>
138138
/// <param name="path">Full path to file to upload</param>
139-
/// <returns>This request</returns>
140-
IRestRequest AddFile(string name, string path);
141-
142-
/// <summary>
143-
/// Adds a file to the Files collection to be included with a POST or PUT request with the specified content type
144-
/// (other methods do not support file uploads).
145-
/// </summary>
146-
/// <param name="name">The parameter name to use in the request</param>
147-
/// <param name="path">Full path to file to upload</param>
148139
/// <param name="contentType">The MIME type of the file to upload</param>
149140
/// <returns>This request</returns>
150-
IRestRequest AddFile(string name, string path, string contentType);
141+
IRestRequest AddFile(string name, string path, string contentType = null);
151142

152143
/// <summary>
153-
/// Adds the bytes to the Files collection with the specified file name
144+
/// Adds the bytes to the Files collection with the specified file name and content type
154145
/// </summary>
155146
/// <param name="name">The parameter name to use in the request</param>
156147
/// <param name="bytes">The file data</param>
157148
/// <param name="fileName">The file name to use for the uploaded file</param>
149+
/// <param name="contentType">The MIME type of the file to upload</param>
158150
/// <returns>This request</returns>
159-
IRestRequest AddFile(string name, byte[] bytes, string fileName);
151+
IRestRequest AddFile(string name, byte[] bytes, string fileName, string contentType = null);
160152

161153
/// <summary>
162154
/// Adds the bytes to the Files collection with the specified file name and content type
163155
/// </summary>
164156
/// <param name="name">The parameter name to use in the request</param>
165-
/// <param name="bytes">The file data</param>
157+
/// <param name="writer">A function that writes directly to the stream. Should NOT close the stream.</param>
166158
/// <param name="fileName">The file name to use for the uploaded file</param>
167159
/// <param name="contentType">The MIME type of the file to upload</param>
168160
/// <returns>This request</returns>
169-
IRestRequest AddFile(string name, byte[] bytes, string fileName, string contentType);
161+
IRestRequest AddFile(string name, Action<Stream> writer, string fileName, string contentType = null);
170162
#endif
171163

172164
/// <summary>

RestSharp/RestRequest.cs

+6-57
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,9 @@ public RestRequest(Uri resource, Method method)
120120
/// </summary>
121121
/// <param name="name">The parameter name to use in the request</param>
122122
/// <param name="path">Full path to file to upload</param>
123+
/// <param name="contentType">The MIME type of the file to upload</param>
123124
/// <returns>This request</returns>
124-
public IRestRequest AddFile(string name, string path)
125+
public IRestRequest AddFile(string name, string path, string contentType = null)
125126
{
126127
FileInfo f = new FileInfo(path);
127128
long fileLength = f.Length;
@@ -137,76 +138,24 @@ public IRestRequest AddFile(string name, string path)
137138
{
138139
file.BaseStream.CopyTo(s);
139140
}
140-
}
141+
},
142+
ContentType = contentType
141143
});
142144
}
143145

144-
/// <summary>
145-
/// Adds a file to the Files collection to be included with a POST or PUT request with the specified content type
146-
/// (other methods do not support file uploads).
147-
/// </summary>
148-
/// <param name="name">The parameter name to use in the request</param>
149-
/// <param name="path">Full path to file to upload</param>
150-
/// <param name="contentType">The MIME type of the file to upload</param>
151-
/// <returns>This request</returns>
152-
public IRestRequest AddFile(string name, string path, string contentType)
153-
{
154-
FileInfo f = new FileInfo(path);
155-
long fileLength = f.Length;
156-
157-
return AddFile(new FileParameter
158-
{
159-
Name = name,
160-
FileName = Path.GetFileName(path),
161-
ContentLength = fileLength,
162-
Writer = s =>
163-
{
164-
using (var file = new StreamReader(path))
165-
{
166-
file.BaseStream.CopyTo(s);
167-
}
168-
},
169-
ContentType = contentType
170-
});
171-
}
172-
173146
/// <summary>
174147
/// Adds the bytes to the Files collection with the specified file name
175148
/// </summary>
176149
/// <param name="name">The parameter name to use in the request</param>
177150
/// <param name="bytes">The file data</param>
178151
/// <param name="fileName">The file name to use for the uploaded file</param>
179-
/// <returns>This request</returns>
180-
public IRestRequest AddFile(string name, byte[] bytes, string fileName)
181-
{
182-
return this.AddFile(FileParameter.Create(name, bytes, fileName));
183-
}
184-
185-
/// <summary>
186-
/// Adds the bytes to the Files collection with the specified file name and content type
187-
/// </summary>
188-
/// <param name="name">The parameter name to use in the request</param>
189-
/// <param name="bytes">The file data</param>
190-
/// <param name="fileName">The file name to use for the uploaded file</param>
191152
/// <param name="contentType">The MIME type of the file to upload</param>
192153
/// <returns>This request</returns>
193-
public IRestRequest AddFile(string name, byte[] bytes, string fileName, string contentType)
154+
public IRestRequest AddFile(string name, byte[] bytes, string fileName, string contentType = null)
194155
{
195156
return this.AddFile(FileParameter.Create(name, bytes, fileName, contentType));
196157
}
197158

198-
/// <summary>
199-
/// Adds the bytes to the Files collection with the specified file name and content type
200-
/// </summary>
201-
/// <param name="name">The parameter name to use in the request</param>
202-
/// <param name="writer">A function that writes directly to the stream. Should NOT close the stream.</param>
203-
/// <param name="fileName">The file name to use for the uploaded file</param>
204-
/// <returns>This request</returns>
205-
public IRestRequest AddFile(string name, Action<Stream> writer, string fileName)
206-
{
207-
return this.AddFile(name, writer, fileName, null);
208-
}
209-
210159
/// <summary>
211160
/// Adds the bytes to the Files collection with the specified file name and content type
212161
/// </summary>
@@ -215,7 +164,7 @@ public IRestRequest AddFile(string name, Action<Stream> writer, string fileName)
215164
/// <param name="fileName">The file name to use for the uploaded file</param>
216165
/// <param name="contentType">The MIME type of the file to upload</param>
217166
/// <returns>This request</returns>
218-
public IRestRequest AddFile(string name, Action<Stream> writer, string fileName, string contentType)
167+
public IRestRequest AddFile(string name, Action<Stream> writer, string fileName, string contentType = null)
219168
{
220169
return AddFile(new FileParameter
221170
{

0 commit comments

Comments
 (0)