0

Я пытаюсь отправить POST некоторые данные из приложения ASP.Net на PHP с использованием объекта HttpWebRequest. Но когда я пытаюсь чтение Request контента с помощьюЯ столкнулся с ошибкой Stream.Length throws NotSupportedException

Stream myStream = myWebReq.GetRequestStream(); 

Я получаю сообщение об ошибке

«responseStream.Length» бросил исключение типа «System.NotSupportedException».
Длина = 'dataStream.Length' сгенерировала исключение типа '' System.NotSupportedException
положение = 'dataStream.Position' сгенерировала исключение типа 'System.NotSupportedException'

Вот код

string strURL = null; 
HttpWebRequest myWebReq = default(HttpWebRequest); 
HttpWebResponse myWebResp = default(HttpWebResponse); 

byte[] byteData = null; 
StreamReader sr = default(StreamReader); 
strURL = "http://people.com.pk/nppm/hrms_ppm_service.php?dump=1"; 
myWebReq = (HttpWebRequest)WebRequest.Create(strURL); 
myWebReq.ContentType = "application/x-www-form-urlencoded; charset=utf-8"; 
myWebReq.Method = "POST"; 

Label1.Text = Newtonsoft.Json.JsonConvert.SerializeObject(batches).ToString(); 

byteData = UTF8Encoding.UTF8.GetBytes(Label1.Text); 
myWebReq.ContentLength = byteData.Length; 

myWebReq.KeepAlive = true; 

if (myWebReq.Proxy != null) 
{ 
    myWebReq.Proxy.Credentials = CredentialCache.DefaultCredentials; 
} 

Stream myStream = myWebReq.GetRequestStream(); 

if (byteData.Length > 0) 
{ 
    myStream.Write(byteData, 0, byteData.Length); 
    myStream.Close(); 
} 

myWebResp = (HttpWebResponse)myWebReq.GetResponse(); 
sr = new StreamReader(myWebResp.GetResponseStream()); 
string strJSON__2 = sr.ReadToEnd(); 
Label1.Text = strJSON__2; 
+0

вы можете опубликовать полный след стека экскрементов, который в какой строке он бросил excpetion .... – dbw

+0

excpetion is here ... Stream myStream = myWebReq.GetRequestStream(); Length = «dataStream.Length» бросил исключение типа «» System.NotSupportedException Позиции = «dataStream.Position» бросил исключение типа «System.NotSupportedException» devanalysts

ответ

0

Просто проверьте ваше имущество HttpWebRequest.DefaultCachePolicy.
Как documentation предположить, что метод HttpWebRequest.GetRequestStream будет выдавать NotSupportedException только тогда, когда валидатор кеша запроса указывает, что ответ для запроса может быть подан из кеша; однако запросы, которые записывают данные, не должны использовать кеш. Это исключение может возникнуть, если вы используете неверный метод проверки подлинности кеша.

+0

имеет ясно кэш со следующими линиями .. .HttpWebRequest.DefaultCachePolicy = новая RequestCachePolicy (RequestCacheLevel.NoCacheNoStore); все еще проблема «NotSupportedException» – devanalysts

+0

Попробуйте это, myWebReq.CachePolicy = новый System.Net.Cache.RequestCachePolicy (System.Net.Cache.RequestCacheLevel.BypassCache); // RequestCacheLevel должен быть BypassCache – dbw

+0

та же проблема ... – devanalysts

Смежные вопросы