2010-12-02 6 views
1

취급 이미지가 다음 코드 조각이 작동 제공하는 웹 서비스에서 이미지를 가져 어제매개 변수 유효하지 않습니다 - System.argumentexception -

public Image getImage() 
    { 
     String connectionString = "URL GOES HERE, CANT POST WORK DATA"; 
     Image img; 
     HttpWebRequest request = WebRequest.Create(connectionString) as HttpWebRequest; 
     using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) 
     { 
      StreamReader reader = new StreamReader(response.GetResponseStream()); 
      img= Image.FromStream(reader.BaseStream); 
     } 

     return img; 
    } 

좋은 하루 종일 일을, 내가 하루 어제를 많이 사용 하지만 지금 내가 가진 전부는

img= Image.FromStream(reader.BaseStream); 

문제는 당신이 수동으로 브라우저에 URL을 입력 할 수 있습니다 (나에게 다른 떨어져 모든 사람들을위한 작업입니다 라인에 헤더에 명시된 예외이며 이미지의 표시 거기,이 중 하나 나를 위해 작동하지 않습니다)

누구에게 아이디어가 있습니까?

감사

답변

0

두 가지 :

1)에서는 StreamReader 당신은)에 대한 직접

2) 문서를 response.GetResponseStream을 (사용할 수 있습니다, 그것은 단지 텍스트 스트림을 위해 사용되는, 사용하지입니다 Image.FromStream available here은 "이미지의 수명 동안 스트림을 열어 두어야합니다."라고 말합니다. 따라서 블록 끝에서 닫히기 때문에 'using'문으로 스트림을 생성하면 안됩니다.

+0

나는 당신이 말한 것을 기각하는 것을 의미하지 않으며 나는 그저 위의 코드를 사용하여 어제 하루 종일 근무했는데 갑자기 멈출 수 있었던 것은 무엇인가? – tom

+0

흠 ... 버그는 스스로 숨기는 경향이 있으므로 버그가있는 코드가 작동하고 대부분의 경우 찾을 수 있습니다. :) –

+0

그래서 스트림 리더 독자를 변경하는 것이 좋습니다 ..... ..... 그 라인을 대체하기 위해 response.GetResponseStream()을 직접 호출하고, using 절을 제거한다. 그러나 어떻게 img 변수에 독자 오브젝트가 없는지를 지정한다. – tom

관련 문제