2014-04-15 1 views
0

Пробелы, удаляемые при отправке данных с ASPX на страницу ASP, но сохраняются пробелы при отправке данных на страницу ASPX. Ниже приведен пример кодаПробелы удаляются при отправке данных с ASPX на страницу ASP, но сохраняются пробелы при отправке на страницу ASPX

вызова программного кода (ASPX код позади)

WebRequest request = WebRequest.Create("http://localhost/asppost/asppost.asp"); 
// Set the Method property of the request to POST. 
request.Method = "POST"; 
// Create POST data and convert it to a byte array. 
string postData = "LastName=Ahamed&Addr1=100 Main Street"; 
byte[] byteArray = Encoding.UTF8.GetBytes(postData); 
// Set the ContentType property of the WebRequest. 
request.ContentType = "application/x-www-form-urlencoded"; 
// Set the ContentLength property of the WebRequest. 
request.ContentLength = byteArray.Length; 
// Get the request stream. 
Stream dataStream = request.GetRequestStream(); 
// Write the data to the request stream. 
dataStream.Write(byteArray, 0, byteArray.Length); 
// Close the Stream object. 
dataStream.Close(); 
// Get the response. 
WebResponse response = request.GetResponse(); 
// Display the status. 
Debug.WriteLine(((HttpWebResponse)response).StatusDescription); 
// Get the stream containing content returned by the server. 
dataStream = response.GetResponseStream(); 
// Open the stream using a StreamReader for easy access. 
StreamReader reader = new StreamReader(dataStream); 
// Read the content. 
string responseFromServer = reader.ReadToEnd(); 
// Display the content. 
Debug.WriteLine(responseFromServer); 
// Clean up the streams. 
reader.Close(); 
dataStream.Close(); 
response.Close(); 

asppost.asp

<% 
Dim Lname, AddressLine1 
Lname = Request.Form("LastName") 
AddressLine1 = Request.Form("AddressLine1") 
Response.Write("Last Name: " & Lname) 
Response.Write(" Address Line1: " & AddressLine1) 
%> 

выход

OK 
Last Name: Ahamed Address Line1: 100MainStreet 

Проблема будет решена, если я использую HttpUtility.UrlEncode, как показано ниже, но мой вопрос, как и почему пространства сохраняются при проводке одни и те же данные (без UrlEncode) на ASPX странице?

string postData = "LastName=" + HttpUtility.UrlEncode("Ahamed") + "&AddressLine1=" + HttpUtility.UrlEncode("100 Main Street"); 

Пожалуйста, поделитесь своими идеями.

+0

Это может происходить автоматически, как часть вашего URL переписывания в asp.net? – safetyOtter

+0

@safetyOtter, нет правила перезаписи URL в моем приложении asp.net. Что еще вы думаете? – afin

ответ

0

Данные в строке postData должны быть закодированы в URL.

Это postData = "LastName=Ahamed&Addr1=100 Main Street";

должно быть: postData = "LastName=Ahamed&Addr1=100+Main+Street";

В коде это будет что-то вроде:

string postData = "LastName=" + HttpUtility.UrlEncode(lastName); 
postData += "&Addr1=" + HttpUtility.UrlEncode(addr1); 

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

  • Нет связанных вопросов^_^