Это, вероятно, спецификация; попробуйте использовать явное кодирование без спецификации:
Encoding enc = new UTF8Encoding(false);
...
request.ContentLength = enc.GetByteCount(data);
...
StreamWriter stOut = new StreamWriter(reqs, enc);
Еще проще; вместо этого переключитесь на WebClient
и попытайтесь справиться со всем этим самостоятельно; заполнить форму очень просто:
using (var client = new WebClient())
{
var data = new NameValueCollection();
data["foo"] = "123";
data["bar"] = "456";
byte[] resp = client.UploadValues(address, data);
}
Или с кодом отсюда :
byte[] resp = client.Post(address, new {foo = 123, bar = 546});