2011-01-06 2 views
0

버튼 클릭으로 HTTP 요청/응답을 수행하는 간단한 응용 프로그램을 만들려고합니다. 다음은 참조 코드에서 을 얻은 전체 코드입니다.HTTPWebRequest.GetResponse()가 연결 실패 예외를 throw합니다.

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;

공간 emulator2

{

공용 부분 Form1 클래스 : 폼

{

공개를 Form1()

{

의 InitializeComponent();

}

공개 무효를 Button1_Click (개체 송신자있는 EventArgs E)

{

열린 l_Uri = 새로 열린 ("http://www.testing.com");

HttpWebRequest l_WebReq = (HttpWebRequest) WebRequest.Create (l_Uri);

HttpWebResponse l_WebResponse = (HttpWebResponse) l_WebReq.GetResponse();

스트림 l_responseStream = l_WebResponse.GetResponseStream();

StreamReader l_SReader = new StreamReader (l_responseStream);

문자열 resultstring = l_SReader.ReadToEnd();

Console.WriteLine (resultstring);

}

}

}

제가 윈도우 응용 프로그램에 코드 의 전체 덩어리를 이동하는 경우, 그것은 잘 작동한다는 것입니다 퍼즐 것은. 하지만 장치 응용 프로그램에서 사용할 때 오류가 발생합니다. 다음은 오류의 세부 사항입니다.

System.Net.WebException 처리되지 않았습니다. 메시지 = "네트워크에 연결할 수 없습니다." StackTrace : at System.Net.HttpWebRequest.finishGetResponse() at System.Net.HttpWebRequest.System.Windows.Forms.ButtonBase.WnProc에서 System.Windows.Forms.Button.OnClick()에서 System.Windows.Forms.Control.OnClick()에서 emulator2.Form1.button1_Click()에서 하는 GetResponse() ()에 emulator2.Program.Main System.Windows.Forms.Application.Run()에서 Microsoft.AGL.Forms.EVL.EnterMainLoop()에서 System.Windows.Forms.Control._InternalWnProc() (AT )

이 광고에

오류 점수

HttpWebResponse 클래스 l_WebResponse = (HttpWebResponse 클래스) l_WebReq.GetResponse();

누구든지 해결 방법에 대한 아이디어가 있습니까? 이걸 얻으려면 진짜 빨리 해결되었습니다. 그래서 도움을 주시면 대단히 감사하겠습니다! 감사!

답변

1

내 생각 엔 에뮬레이터에 적절한 네트워크 연결이 없다는 것입니다. 내 Windows Mobile 에뮬레이터를 사용하여 네트워크를 구축하고 운영하는 데 어려움이 따를 수 있습니다. 당신이 당신의 자원의 폐기하지 않는, 또한 ...

로드 최대 인터넷 익스플로러 (그것은 윈도우 폰 7에서 쉽게) 및 것을이 같은 URL에 접속을 할 수 있는지 (그리고이 코드가 정말로 당신이 썼던 것처럼 참고 도서에 실제로 있다면 그것은 그 책에 대한 중요한 흑표이다). 예를 들어, 웹 응답을 폐기해야합니다

using (HttpWebResponse response = ...) 
{ 
} 

는 마찬가지로 나는 개인적으로 그냥 일반적인 원칙에 응답 스트림과 스트림 리더 처분 것이다. 용의가인데 응답이 처리되면 스트림도 그대로 유지됩니다. 그러나 사용자가 메시지를 남겨 둘 필요가 없다면 모두 스트림 등을 처분하는 것이 좋습니다.

+0

Windows Mobile 6 Professional을 에뮬레이터로 사용하고 있습니다. 네트워크에 연결할 수 없습니다. 어떤 아이디어? – strider

+0

@strider : Windows Mobile 자체 및 에뮬레이터 설정에서 다양한 연결 설정을 모두 수행하십시오.컴퓨터에서 기본 네트워크 액세스를 사용하여 NE2000을 에뮬레이트한다고 말하는 것과 같은 것을 상기합니다. 그런 다음 에뮬레이터 내에서 "인터넷"에 대한 연결을 설정해야합니다. 이것들은 꽤 희미하고 먼 기억이지만 - 당신은 수색을 통해보다 정확한 연습을 찾을 수 있습니다. 적어도 잠시 동안 코드에 대해 걱정할 필요가 없습니다. –

0

에뮬레이터에서 실행중인 경우에는 에뮬레이터를 "요람"하고 ActiveSync (Win XP) 또는 Windows Mobile Device Center (Vista 또는 7)와 파트너 관계를 만듭니다.

이렇게하면 에뮬레이터가 PC와 네트워크 연결을 공유 할 수 있습니다. 에뮬레이터에서 PC로 연결하려는 경우에도이 작업을 수행해야합니다.

Jon이 언급했듯이 WP7에서는 이러한 방식으로 연결하지 않아도되지만 WP7 에뮬레이터는 자동으로 호스트 PC의 네트워크 연결을 공유합니다.

IE Mobile (에뮬레이터 사용)을 사용하여 장치가 사이트에 연결할 수 있는지 확인하십시오.

편집, 에뮬레이터를 크래들 VS2008에서 도구 메뉴에서 "장치 에뮬레이터 관리자"를 선택합니다. 실행중인 에뮬레이터를 선택하고 마우스 오른쪽 버튼으로 클릭 한 다음 "Cradle"을 선택하십시오.

실제 장치를 연결 한 것처럼 모바일 장치 센터가 자동으로 시작되어 파트너 관계를 만들지 묻습니다.

+0

Windows 7을 사용하고 있습니다. 에뮬레이터를 도킹하고 Windows Mobile Device Center와 파트너 관계를 만드는 방법은 무엇입니까? – strider

+0

@strider answer에 대한 자세한 내용을 포함하도록 업데이트되었습니다. 에뮬레이터를 "요람"하기 위해 –

관련 문제