2015-06-30 98 views
1

我想從此搜索結果中返回HTML,但我能夠得到的是原始頁面的值插入相應的文本框中。這段代碼顯然適用於其他人,我不確定問題是什麼。VB .NET:在HTTP POST後無法獲得正確的響應

' Create a new WebClient instance. 
Dim myWebClient As New WebClient() 
myWebClient.Headers.Add("user-agent", "Mozilla/5.0 (Windows; Windows NT 5.1; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4") 

' Create a new NameValueCollection instance to hold some custom parameters to be posted to the URL. 
Dim myNameValueCollection As New NameValueCollection() 

' Add necessary parameter/value pairs to the name/value container. 
myNameValueCollection.Add("conCSLB", "619412") 

' The Upload(String,NameValueCollection)' method implicitly sets the HTTP POST as the request method. 
Dim responseArray As Byte() = myWebClient.UploadValues("https://efiling.dir.ca.gov/PWCR/Search", myNameValueCollection) 

' Decode and display the response. 
Dim response As String = Encoding.UTF8.GetString(responseArray) 
+0

你確定你正在調用搜索結果頁嗎?併發送提交按鈕信息? –

+0

我相信是這樣,但這是我提出這個問題的原因之一 - 找出我做錯了什麼。 –

回答

0

顯然,服務器端腳本檢查是否存在其他2個輸入元素,即使它們是空的。添加它們:

myNameValueCollection.Add("regNumber", "") 
myNameValueCollection.Add("legalName", "") 

這解決了您的主要問題,現在您需要解析HTML。但我發現一個有趣的事情:你可以下載XLS和解析:(!不是真正的XLS)

My.Computer.Network.DownloadFile("https://efiling.dir.ca.gov/PWCR/Search.action?6578706f7274=1&legalName=&conCSLB=619412&regNumber=&d-49653-e=2", "output.txt") 

該文件包含原始數據:

"Legal Name" "Registration Number" "License Type/Number(s)"   "Registration Date" "Expiration Date" 
"BLASER BUILDING SPECIALTIES, INC." "1000006374" "CSLB:619412" "01/21/2015" "06/30/2015" 

只要改變參數的URL你就完成了

+0

現貨!試圖弄清楚這一點,我一直在拉我的頭髮幾個小時。我不敢相信這很簡單。 –