У меня есть служба RESTful WCF, у которой есть метод загрузки, принимающий более одного параметра. Это делается путем создания всех параметров, кроме Stream, части URI. Вот как метод выглядит в контракте:
[OperationContract, WebInvoke(UriTemplate = "UploadFile?username={username}&password={password}&filename={filename}")]
bool UploadFile(string username, string password, string filename, Stream fileContents);
Я еще не тестировал этот метод, но при условии, что он работает, есть большая проблема с ним: пароль будет виден в адресной строке. Как мне скрыть эти параметры, оставляя их частью UriTemplate? Они нужны мне как часть URI, поскольку это позволяет мне использовать дополнительные параметры в Stream.
Вот что я пытался сделать:
[OperationContract, WebInvoke(Method = "POST", UriTemplate = "UploadFile?username={username}&password={password}&filename={filename}")]
bool UploadFile(string username, string password, string filename, Stream fileContents);
Это просто дикое предположение, и я даже не уверен, имеет ли оно смысл. Служба WCF запускается просто отлично, но я еще не проверял ее. Таким образом можно использовать HTTP POST для URI?