[英]HTTPWebRequest.GetResponse() throws connection failure exception
我正在嘗試創建一個簡單的應用程序,該應用程序在單擊按鈕時執行HTTP請求/響應。 這是我從參考書中獲得的全部代碼:
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;
namespace emulator2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void button1_Click(object sender, EventArgs e)
{
Uri l_Uri = new Uri("http://www.testing.com");
HttpWebRequest l_WebReq = (HttpWebRequest)WebRequest.Create(l_Uri);
HttpWebResponse l_WebResponse =
(HttpWebResponse)l_WebReq.GetResponse();
Stream l_responseStream = l_WebResponse.GetResponseStream();
StreamReader l_SReader = new StreamReader(l_responseStream);
string resultstring = l_SReader.ReadToEnd();
Console.WriteLine(resultstring);
}
}
}
令我困惑的是,當我將整個代碼塊轉移到Windows應用程序時,它運行正常。 但是當我在設備應用程序上使用它時,它只會引發一個錯誤。 以下是錯誤的詳細信息:
“ System.Net.WebException未處理Message =”無法建立與網絡的連接。“ StackTrace:在System.Net.HttpWebRequest.finishGetResponse()在System.Net.HttpWebRequest.GetResponse()在emulator2.Form1.button1_Click()在System.Windows.Forms.Control.OnClick()在System.Windows.Forms.Button 。在System.Windows.Forms.Application.Run上的Microsoft.AGL.Forms.EVL.EnterMainLoop()處的System.Windows.Forms.Control._InternalWnProc()處的System.Windows.Forms.ButtonBase.WnProc()處單擊() ()在emulator2.Program.Main()
此行的錯誤點:
HttpWebResponse l_WebResponse = (HttpWebResponse)l_WebReq.GetResponse();
有誰知道如何解決這個問題? 我需要快速解決這個問題。所以給予的任何幫助都非常感謝! 謝謝!
我的猜測是模擬器沒有正確的網絡連接。 在舊的Windows Mobile模擬器上建立網絡並運行時,可能會很痛苦(根據我的經驗,這是一個失敗的嘗試)。 (在Windows Phone 7中很容易。)
加載的Internet Explorer,看看有沒有可以使相同的URL連接...
此外,您不會處置任何資源(如果此代碼確實在您編寫的參考書中,那么這是對該書的重要黑色標記)。 例如,您應該處理Web響應:
using (HttpWebResponse response = ...)
{
}
同樣,我會按照一般原則親自處理響應流和流閱讀器。 我懷疑當響應被釋放時,流也將是 - 但是處理所有流等是有意義的,除非你知道你需要將它們置於不受干擾之外。
如果您在仿真器中運行,則需要“搖籃”仿真器,然后與ActiveSync(Win XP)或Windows Mobile設備中心(Vista或7)建立伙伴關系。
這將允許仿真器與PC共享網絡連接。 即使您想要從仿真器連接到PC,也需要執行此操作。
正如Jon所提到的,在WP7中你不需要以這種方式建立連接,WP7模擬器自動共享主機PC的網絡連接。
使用IE Mobile(在模擬器上)檢查設備是否可以連接到站點。
編輯
要放置仿真器,請在VS2008中從“工具”菜單中選擇“設備仿真器管理器”。 選擇正在運行的仿真器,右鍵單擊並選擇“支架”。
移動設備中心應自動啟動並詢問您是否要創建合作伙伴關系,就像您已連接真實設備一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.