2012-09-09 2 views
0

여기에 문제가 있습니다 ... 서버에 XML 파일을 저장하면 steamReader를 통해 읽을 수 있고 변수로 변환하고 MSSQL 데이터베이스에서 모든 작업을 수행 할 수 있습니다.C# display XML from html POST

그러나, 내가 html로 POST를 보낼 필요가있다, 그것은 아래의 코드를 작동하지 않습니다

page.Response.ContentType = "text/xml"; 
StreamReader reader = new StreamReader(page.Request.InputStream); 
inputString = reader.ReadToEnd(); 
deleteShip(inputString); 

는 위의 코드가 POST XML을 못해서 나에게 보인다 내 프로그램에서. deleteShip의 동일한 코드에서 서버의 xml을 사용하면 잘 작동하기 때문입니다.

이 문제를 해결할 방법이 있습니까? 내가 deleteShip (string s)에 어떤 문자열을 보낼 수 있다면 나는 행복하다. 문자열은 XML 형식이긴하지만

도움을 주셔서 감사합니다!

+0

'page.Response.ContentType = "text/xml";'요청에는 아무런 영향을 미치지 않습니다. –

답변

0

XML이 프로그램에 게시되는 방법을 확인하는 것이 유용 할 것입니다. 일반적으로 POST 메서드를 사용하면 HTTP 요청 본문에 HTML 형식의 데이터가 이름 - 값 쌍으로 전송됩니다. HTML 양식을 사용하여 프로그램에 XML을 POST하는지 여부는 귀하의 질문에서 분명하지 않으며 더 많은 정보가 없으면 잘못 될 수 있음을 알기 어렵습니다.

Request["XmlParameterName"] 

XmlParameterName는 HTML 양식 입력의 이름입니다 : 당신은 당신이 일반적으로 예를 들어, 요청 매개 변수의 값을 읽어 줄 전체 HTTP 요청을 읽고 같은 코드에서

가 보인다 들.

변수 inputString의 값을 검사 해 보셨습니까? 유효한 XML입니까? 올바르게 인코딩 되었습니까? 앰퍼샌드 (&)와 같은 잘못된 문자가 올바르게 이스케이프됩니까?

내가 언급 한 것이 문제가 아닌 경우 조금 더 자세한 정보로 질문을 업데이트하십시오.

+0

appendPostData 메서드를 사용하여 iOS ASIHTTPRequest에서 전달되었습니다. – snowmen10

0

좋아요, 고쳐졌습니다. 다음은 코드입니다.

System.IO.Stream stream; 
string inputString; 
Int32 stringLength; 

stream = Request.InputStream; 
stringLength = Convert.ToInt32(stream.Length); 
byte[] stringArray = new byte[stringLength]; 

inputString = System.Text.Encoding.ASCII.GetString(stringArray, 0, stringLength); 

deleteShip(inputString); 

이렇게하면 내 HTML 요청 (이 경우 XML)에서 POST 본문에 액세스합니다.