Я нахожусь в процессе разработки WCF Restful Service. Одно из требований WCF - разрешить клиенту загружать файл изображения и несколько входных параметров, которые могут содержать несколько значений.
Я думал о нескольких способах отправки файла с входными параметрами в одном запросе. Я не уверен, какой будет наилучший подход.
1) Принять поток, который содержит многочастный поток данных формы. Огромным недостатком этого подхода является то, что мне приходится писать многочастный парсер. (AspNetCompatibilityEnabled = "ложь")
[WebInvoke (UriTemplate = "Account",Method = "POST")]
public String Account(System.IO.Stream stream) {
MultiPartParser(stream);
}
2) Отправьте файл в виде потока и отправьте другие данные в QueryString. Единственная проблема с этим подходом состоит в том, что значения могут быть многострочными текстовыми данными.
[WebInvoke (UriTemplate = "Account?input1={val1}&input2={val2}",Method = "POST")]
public String Account(System.IO.Stream stream) {
}
3) Преобразовать файл как строку Base64, инкапсулировать его в JSON или XML и отправить его с другими входными параметрами. Есть ли ограничения этого подхода?
[WebInvoke (UriTemplate = "Account",Method = "POST")]
public String Account(String ImageFile, String input1, String input2) {
}
Каков наилучший подход? Спасибо за ваше время.