Мой WCF-сервис прокси-сервер другого веб-сервиса. Всякий раз, когда я изменяю ответ и возвращаю поток памяти, клиент получает 202-Accepted.
public Stream MyMethod()
{
...
...
HttpWebResponse httpGetResponse = (HttpWebResponse)httpGetRequest.GetResponse();
var result = httpGetResponse.GetResponseStream();
//if I return "result" here, I get a 200 and Messagebody contains the contents of the stream
//return result;
//modifying content body
var txtresult = new StreamReader(result, Encoding.UTF8).ReadToEnd();
txtresult = txtresult.Replace("old text", "new text");
var stream = new MemoryStream();
stream.Write(Encoding.UTF8.GetBytes(txtresult), 0, Encoding.UTF8.GetBytes(txtresult).Length);
//same as:- new MemoryStream(Encoding.UTF8.GetBytes(txtresult));
stream.Position = 0L;
//stream.Flush();
//returns 202 - Accepted. Content body is empty
return stream;
}
По сути, мне просто нужно изменить содержимое потока, прежде чем пересылать их клиентскому приложению. Я проверил, что кодировка правильная. Помимо этого я не уверен, что я делаю неправильно. Пожалуйста, помогите
Кроме того, определение интерфейса выглядит следующим образом:
[WebInvoke(Method = "GET",
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "teststream")]
Stream MyMethod();