0
我試圖從我的各種遠程變送器網絡刮日期。我有一個品牌發射的,我可以登錄到與下面的C#代碼:網站登錄數據刮
public static string getSourceCode(string url, string user, string pass)
{
SecureString pw = new SecureString();
foreach (char c in pass.ToCharArray()) pw.AppendChar(c);
NetworkCredential credential = new NetworkCredential(user, pw, url);
CredentialCache cache = new CredentialCache();
cache.Add(new Uri(url), "Basic", credential);
Uri realLink = new Uri(url);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(realLink);
req.Credentials = CredentialCache.DefaultNetworkCredentials;
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(resp.GetResponseStream());
string sourceCode = sr.ReadToEnd();
sr.Close();
resp.Close();
return sourceCode;
}
第二品牌變送器(我不願把網址在公衆場合),而不是返回網頁請求的用戶名密碼將返回一個請求用戶名和密碼的框。使用上面的代碼只會返回未經授權的錯誤。
提琴手說,下面的是,當我成功地登錄到該網站發送:
GET http(colon slash slash)lasvegas3abn(*)dyndns(*)tv(PORT)125(slash)measurements(*)htm HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Accept-Language: en-US User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; Touch) Accept-Encoding: gzip, deflate Host: lasvegas3abn.dyndns.tv:125 Authorization: Basic dXNlcjpsaW5lYXI= Connection: Keep-Alive DNT: 1
有什麼建議?
您還應該能夠捕捉到當您運行C#代碼並比較它們時Fiddler發送的內容。還要注意,發佈即使編碼的基本認證憑證也是不明智的,因爲它只有base-64編碼並且很容易閱讀。 – mellamokb
您在提琴手跟蹤中發佈的信息顯示了第二個發射器的網址以及您的用戶名和密碼(以64爲基礎編碼)。我建議您更改發射器上的密碼。 – adrianbanks