2014-11-20 2 views
0

증권 정보를 분석 할 웹 페이지를 가져오고 싶습니다. 다음 샘플 코드를 사용하여 C#을 사용하여 html 데이터를 가져옵니다. 컴파일하는 동안 항상 실행은 오류로 종료됩니다. 인터넷에서 HTML 소스 가져 오기

string urlAddress = "http://pchome.syspower.com.tw/stock/sto0/ock2/sid2404.html"; 
var request = (HttpWebRequest)WebRequest.Create(urlAddress); 

request.Method = "POST"; 
request.ContentType = "application/x-www-form-urlencoded"; 
request.ContentLength = 1414; 
var requestStream = request.GetRequestStream(); 
requestStream.Write(Encoding.UTF8.GetBytes("is_check=1"), 0, 10); 
requestStream.Close(); 
var response = (HttpWebResponse)request.GetResponse(); 
var sr = new StreamReader(response.GetResponseStream()); 
string rawData = sr.ReadToEnd(); 
sr.Close(); 
response.Close(); 

사람이이 문제를 해결하는 방법을 알고 있나요

:

enter image description here

다음은 내 샘플 코드인가?

+2

이 될 수 없습니다, 당신이 게시하는 URL이 POST 요청을 기대하지 않습니다? –

답변

0

오류는 주로 코드 순서와 사용자가 여전히 사용하려고하는 객체 인 Stream 개체의 종료와 관련이 있습니다.

가능한 경우 객체를 올바르게 처리하려면 using을 사용하는 것이 좋습니다.

사용이 코드 :

string rawData; 
byte[] bytes = Encoding.UTF8.GetBytes("is_check=1"); 

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress); 

request.Method = "POST"; 
request.ContentType = "application/x-www-form-urlencoded"; 
request.ContentLength = bytes.Length; 

using (Stream requestStream = request.GetRequestStream()) 
{ 
    requestStream.Write(bytes, 0, bytes.Length); 

    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
    { 
     using (StreamReader sr = new StreamReader(response.GetResponseStream())) 
     { 
      rawData = sr.ReadToEnd(); 
     } 
    } 
} 
+0

코드가 작동하지 않습니다. HttpWebResponse response = (HttpWebResponse) request.GetResponse()) :( – user1328842

+0

죄송하지만, 여기서도 잘 작동합니다. 오류 메시지가 무엇입니까? –

+0

@ user1328842 : 실제 내용을 확인하십시오. 메시지를 클릭하고 '중단'을 클릭하여 오류 대화 상자의 내용을 확인하십시오 –

관련 문제