[英]How to connect to speacial links using TIdHttp in delphi?
瀏覽器示例
我有以下鏈接可以使用 url 中的用戶名和密碼連接到我的 IP 攝像機。
http://admin:password@192.168.1.13/ISAPI/Streaming/channels/102/picture
如果我在 Internet Explorer 中打開此鏈接,它會顯示以下消息並且無法打開該鏈接。
Windows can not locate <link>. Check your spelling and try again
當我在 Firefox 的 Chrome 中打開相同的鏈接時,它工作正常並顯示所需的 jpg 圖片。
德爾福
在 delphi 中,我使用TIdHttp
從此鏈接獲取圖片。
var
Ms: TMemoryStream;
PictureUrl: string;
begin
try
PictureUrl := 'http://admin:password@192.168.1.13/ISAPI/Streaming/channels/102/picture';
IdHTTP1.get(PictureUrl, MS);
Ms.Seek(0,soFromBeginning);
MS.SaveToFile('C:\Users\karat\Documents\hikivision1.jpg');
finally
FreeAndNil(MS);
end;
end;
該代碼適用於另一個 jpg 圖像鏈接,問題是該代碼獲取 178byts MemoryStream,這意味着圖片未被加載。
我在表單中放置了一個TWebBrowser
,我發現它給我的錯誤與在 Internet Explorer 瀏覽器中一樣,瀏覽器不支持加載這種類型的 url。
翻譯:無法訪問此頁面。 檢查您的鏈接是否正確。
解決方案?
我假設如果我找到一種方式使TIdHttp
像 Chrome 和 Firefox 一樣工作,它將正確加載所需的圖片。 有什么辦法可以做到這一點或其他可能的解決方案嗎?
瀏覽器示例
我有以下鏈接可以使用 url 中的用戶名和密碼連接到我的網絡攝像機。
http://admin:password@192.168.1.13/ISAPI/Streaming/channels/102/picture
如果我在 Internet Explorer 中打開此鏈接,它會顯示以下消息,但無法打開該鏈接。
Windows can not locate <link>. Check your spelling and try again
當我在 Firefox 的 Chrome 中打開相同的鏈接時,它工作正常並顯示所需的 jpg 圖片。
德爾福
在 delphi 中,我使用TIdHttp
從這個鏈接獲取圖片。
var
Ms: TMemoryStream;
PictureUrl: string;
begin
try
PictureUrl := 'http://admin:password@192.168.1.13/ISAPI/Streaming/channels/102/picture';
IdHTTP1.get(PictureUrl, MS);
Ms.Seek(0,soFromBeginning);
MS.SaveToFile('C:\Users\karat\Documents\hikivision1.jpg');
finally
FreeAndNil(MS);
end;
end;
該代碼適用於另一個 jpg 圖片鏈接,問題是該代碼獲得了 178 字節的 MemoryStream,這意味着圖片沒有被加載。
我在表單中放置了一個TWebBrowser
,我發現它給了我與 Internet Explorer 瀏覽器相同的錯誤,瀏覽器不支持加載這種類型的 url。
翻譯:無法訪問此頁面。 檢查您的鏈接是否正確。
解決方案?
我假設如果我找到了一種讓TIdHttp
表現得像 Chrome 和 Firefox 一樣的方式,它將正確加載所需的圖片。 有什么辦法可以做到這一點或其他可能的解決方案?
如果它沒有運行,則嘗試另外設置以下內容:
請求.BasicAuthentication:= False; HTTPOptions:= [hoInProcessAuth, hoForceEncodeParams];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.