2012-10-04 11 views
9

से वेबसाइट पर लॉग इन करें मैं पूछूंगा कि कोई मुझे बताएगा कि डेल्फी ऐप से वेबपृष्ठ पर लॉगिन कैसे करें। यहां मिले सभी उदाहरण मेरे लिए बेकार साबित हुए हैं या मैं कुछ गलत कर रहा हूं। मैं खोज और कोड से थक गया हूं जो काम नहीं करता है।डेल्फी

कोई त्रुटि संदेश नहीं है, मुझे मेमो में पेज कोड भी मिलता है लेकिन लगता है कि यह लॉगिन पेज से खाता है (खाता [डैशबोर्ड] पृष्ठ नहीं) - ऐसा लगता है कि यह कोड बिल्कुल गुजर नहीं सकता है और मुझे नहीं पता कि क्यों ।

क्या इस कोड में गलत है:

procedure Login; 
var 
HTTP: TIdHTTP; 
Param: TStringList; 
S: String; 
begin 
HTTP := TIdHTTP.Create(nil); 
HTTP.CookieManager := Main_Form.CookieManager; 
Param := TStringList.Create; 
Param.Clear; 
Param.Add('login=example'); 
Param.Add('password=example'); 

try 
HTTP.Get ('http://www.filestrum.com/login.html'); 
HTTP.Post('http://www.filestrum.com/login.html', Param); 
S := HTTP.Get ('http://www.filestrum.com/?op=my_account'); 
Main_Form.Memo2.Lines.Add(S); 
finally 
    HTTP.Free; 
    Param.Free; 
end; 
end; 

या इस संस्करण के साथ:

procedure Login; 
var 
HTTP: TIdHTTP; 
S: String; 
begin 
HTTP        := TIdHTTP.Create(nil); 
HTTP.CookieManager    := Main_Form.CookieManager; 
HTTP.Request.BasicAuthentication := True; 
HTTP.Request.Username   := 'example'; 
HTTP.Request.Password   := 'example'; 
HTTP.AllowCookies    := True; 
HTTP.HandleRedirects    := True; 

S := HTTP.Get ('http://www.filestrum.com/?op=my_account'); 
Main_Form.Memo2.Lines.Add(S); 
end; 

प्रयुक्त डेल्फी XE2 और इस कोड चलाने और प्रवेश करने के लिए कोई रास्ता नहीं है। यह XE3 डेमो के साथ समान है। जैसा कि मैंने कहा, मैं वास्तव में कुछ समाधान खोज रहा हूं, इसमें बर्बाद दिन और कुछ भी नहीं।

कृपया लोग, यहां कुछ मदद करें। वास्तव में इसकी जरूरत है। इस तरह

+0

तुम भी मदद के लिए भीख माँग रहा है (जो आप पहले से ही प्रश्न पोस्ट करने से परोक्ष किया) 2 पैराग्राफ व्यर्थ है, लेकिन पूरी तरह से क्या गलत हो रहा है उल्लेख करना भूल गया। समय संकलित करें, रन टाइम, विशिष्ट त्रुटि संदेश? – GolezTrol

+0

क्या आपने 'http: //www.filestrum.com//? Op = my_account' में अतिरिक्त'/'को निकालने का प्रयास किया है? – TLama

+0

कोई त्रुटि संदेश नहीं है, कुछ भी नहीं। मुझे मेमो में पेज कोड मिलता है लेकिन ऐसा लगता है कि यह ऑथ पास नहीं हुआ है। फ़ायरफ़ॉक्स से वही उपयोगकर्ता नाम और पासवर्ड काम करते हैं। http://www.filestrum.com/?op=my_account - मेरी त्रुटि लेकिन यह अभी भी वही है। जो भी मैं कोशिश करता हूं - कोड से लॉग इन नहीं कर सकता। – Cohen

उत्तर

7

कोशिश कुछ:

function Login: string; 
var 
    IdHTTP: TIdHTTP; 
    Request: TStringList; 
    Response: TMemoryStream; 
begin 
    Result := ''; 
    try 
    Response := TMemoryStream.Create; 
    try 
     Request := TStringList.Create; 
     try 
     Request.Add('op=login'); 
     Request.Add('redirect=http://www.filestrum.com'); 
     Request.Add('login=example'); 
     Request.Add('password=example'); 
     IdHTTP := TIdHTTP.Create; 
     try 
      IdHTTP.AllowCookies := True; 
      IdHTTP.HandleRedirects := True; 
      IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded'; 
      IdHTTP.Post('http://www.filestrum.com/', Request, Response); 
      Result := IdHTTP.Get('http://www.filestrum.com/?op=my_account');  
     finally 
      IdHTTP.Free; 
     end; 
     finally 
     Request.Free; 
     end; 
    finally 
     Response.Free; 
    end; 
    except 
    on E: Exception do 
     ShowMessage(E.Message); 
    end; 
end; 
+0

ताकि 'रीडायरेक्ट' रीडायरेक्ट न हो? अजीब लगता है ... – TLama

+0

@ TLama: POST अनुरोध 302 जारी करता है, इसलिए यह एक नया जीईटी अनुरोध – whosrdaddy

+0

येस जारी करने के लिए ग्राहक पक्ष है .. यह एक काम करता है! दोस्तों, बहुत बहुत धन्यवाद। – Cohen