2016-04-01 28 views
0

我已經場景,我想打開本地網頁(index.html的)查詢傳遞參數,我可以index.html中使用,但因爲它提供了錯誤按下面,我有問題,如何使用vb中的參數訪問本地網頁?

系統找不到指定的文件。

Vb.net代碼

Dim url As String = ConfigurationManager.AppSettings("Url") 
url = url & "?id=" & txtFilePath.Text 

    //Url example 
"C:\Program Files\Products\Bella\index.html?id=232" 

Process.Start(url) 
+0

url會給你什麼樣的價值? – Mych

+0

類似於「C:\ Program Files \ Products \ Bella \ index.html?id = 232」,但如果刪除查詢,則會打開我的默認瀏覽器。 – CodeBox

+0

嘗試發送文件:/// C:/ Program Files/Products/Bella/index.html?id = 232或更好的文件:/// C:/Program%20Files/Products/Bella/index.html%3Fid= 232。同時檢查該文件:/// C:/ Program Files/Products/Bella/index.html?id = 232會在您將它粘貼到瀏覽器時給出您想要的結果。 – Mych

回答

0

我不完全理解你的問題,但我會嘗試。

我不知道「Url」的值是什麼,也不知道txtFilePath.text應該是什麼。但是如果您嘗試在瀏覽器中打開一個網址,如

localhost/index.html?id=example 

您應該使用它作爲第一個參數。

Process.Start("IExplore.exe", url) 

如果你試圖讓服務器讀取你把網址中的參數,我不知道,如果你可以讓HTML的網頁獲得這樣的參數,也許PHP還是其他什麼東西?但是,這對啓動瀏覽器和內容應該沒有什麼區別,只是單挑:)


但是,如果您只是想在瀏覽器窗口中打開一個靜態HTML文件,那麼您據我所知,與傳遞參數運氣不好,但你SHOULD測試你的文件的存在,所以你完全確信它存在於該路徑。

File.Exists(url) 

編輯: 由於您的網址是「C:\ Program Files文件\產品\貝拉\ index.html的ID = 232」我不相信你可以傳遞參數,我想它會嘗試找到一個擴展名爲「.html?id = 232」的文件,這顯然不存在。

0

似乎有兩個問題:

第一:

我認爲錯誤的原因是你需要有「文件://」網址之前(如Mych中提到的評論)以訪問本地網頁。除非您指定它是本地文件,否則許多瀏覽器會自動假定該URL應具有「http://」。

根據您的瀏覽器,它可能會添加更多正斜槓,但兩個應該足以讓Process.Start識別它。

所以您的網址應該是這樣的:

"file://C:\Program Files\Products\Bella\index.html?id=232" 

二:

至於傳遞參數的URL我已經找到了最好的方式(如雅各布斯建議),你將有使用:

Process.Start("IExplore.exe", url) 
'or 
Process.Start("Chrome.exe", url) 

或您喜歡的任何瀏覽器。

所以,你可以修改你的代碼是這樣的:

Dim url As String = ConfigurationManager.AppSettings("Url") 
url = url & "?id=" & txtFilePath.Text 

'Add "file://" to the beginning of the url. 
url = "file://" & url 

Process.Start("IExplore.exe", url) 

這應該擺脫你的錯誤,並與您的參數加載頁面。

希望它有幫助!

相關問題