線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:823
推到 Plurk!
推到 Facebook!

idhttp post出現Socket error #0

答題得分者是:kuraki5336
darren99168
一般會員


發表:7
回覆:9
積分:3
註冊:2016-05-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2016-10-03 17:43:11 IP:114.35.xxx.xxx 訂閱
請問在利用IDHHTTP寫以下 YAHOO信箱自動登錄時發生Socket error #0  
不知道錯誤在哪邊
有前輩可以指教一下一嗎? 先謝謝前輩們
procedure TForm1.Button4Click(Sender: TObject);
const PostUrl = 'https://login.yahoo.com/config/login?.intl=tw&.done=https://tw.yahoo.com/';
var
respStream : TStringStream;
params : TStringList;
begin
params := TStringList.Create;
respStream := TStringStream.Create('');
TRY
idhttp1.HandleRedirects := true;
idhttp1.Request.ContentType := 'application/x-www-form-urlencoded; charset=UTF-8';
idhttp1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko/20100101 Firefox/12.0';
params.Add('.persistent=y');
params.Add('_crumb=HtQYlq0n');
params.Add('_format=json');
params.Add('_loadtpl=1');
params.Add('_seqid=2');
params.Add('_ts=1475463657');
params.Add('_uuid=6T3ZyxViyUuC');
params.Add('countrycode=886');
params.Add('otp_channel=');
params.Add('passwd=' edit7.Text);
params.Add('signin=authtype');
params.Add('username=' edit6.Text);
IdHTTP1.Post(sPostUrl, params, respStream);
richedit1.Text := respStream.DataString;
params.Free;
FINALLY

END;

end;
kuraki5336
一般會員


發表:10
回覆:19
積分:20
註冊:2010-06-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2016-10-03 22:38:27 IP:111.252.xxx.xxx 訂閱
你好像是要連線 https: ?

但並沒有看到你設定 TIdSSLIOHandlerSocketOpenSSL ?

又或者是使用的是可視元件但SSL

FHandlerSSL.SSLOptions.Method := sslvSSLv23;
要再設定。

不太肯定的答案不過可以先往這找找。又或者可能是沒有 ssleay32.dll 還有一個應該叫做 libssl.dll

===================引 用 darren99168 文 章===================
請問在利用IDHHTTP寫以下 YAHOO信箱自動登錄時發生Socket error #0
不知道錯誤在哪邊
有前輩可以指教一下一嗎? 先謝謝前輩們
procedure TForm1.Button4Click(Sender: TObject);
const PostUrl = 'https://login.yahoo.com/config/login?.intl=tw&.done=https://tw.yahoo.com/';
var
respStream : TStringStream;
params : TStringList;
begin
params := TStringList.Create;
respStream := TStringStream.Create('');
TRY
idhttp1.HandleRedirects := true;
idhttp1.Request.ContentType := 'application/x-www-form-urlencoded; charset=UTF-8';
idhttp1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko/20100101 Firefox/12.0';
params.Add('.persistent=y');
params.Add('_crumb=HtQYlq0n');
params.Add('_format=json');
params.Add('_loadtpl=1');
params.Add('_seqid=2');
params.Add('_ts=1475463657');
params.Add('_uuid=6T3ZyxViyUuC');
params.Add('countrycode=886');
params.Add('otp_channel=');
params.Add('passwd=' edit7.Text);
params.Add('signin=authtype');
params.Add('username=' edit6.Text);
IdHTTP1.Post(sPostUrl, params, respStream);
richedit1.Text := respStream.DataString;
params.Free;
FINALLY

END;

end;
darren99168
一般會員


發表:7
回覆:9
積分:3
註冊:2016-05-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2016-10-04 09:46:07 IP:114.35.xxx.xxx 訂閱
都有設定阿 DLL檔也有放了
測試了其他的網站是可行的 但利用YAHOO信箱測試登入就會發生問題,不知是哪邊錯了
===================引 用 kuraki5336 文 章===================
你好像是要連線 https: ?

但並沒有看到你設定 TIdSSLIOHandlerSocketOpenSSL ?

又或者是使用的是可視元件但SSL

FHandlerSSL.SSLOptions.Method := sslvSSLv23;
要再設定。

不太肯定的答案不過可以先往這找找。又或者可能是沒有 ssleay32.dll 還有一個應該叫做 libssl.dll

===================引 用 darren99168 文 章===================
請問在利用IDHHTTP寫以下 YAHOO信箱自動登錄時發生Socket error #0
不知道錯誤在哪邊
有前輩可以指教一下一嗎? 先謝謝前輩們
procedure TForm1.Button4Click(Sender: TObject);
const PostUrl = 'https://login.yahoo.com/config/login?.intl=tw&.done=https://tw.yahoo.com/';
var
respStream : TStringStream;
params : TStringList;
begin
params := TStringList.Create;
respStream := TStringStream.Create('');
TRY
idhttp1.HandleRedirects := true;
idhttp1.Request.ContentType := 'application/x-www-form-urlencoded; charset=UTF-8';
idhttp1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko/20100101 Firefox/12.0';
params.Add('.persistent=y');
params.Add('_crumb=HtQYlq0n');
params.Add('_format=json');
params.Add('_loadtpl=1');
params.Add('_seqid=2');
params.Add('_ts=1475463657');
params.Add('_uuid=6T3ZyxViyUuC');
params.Add('countrycode=886');
params.Add('otp_channel=');
params.Add('passwd=' edit7.Text);
params.Add('signin=authtype');
params.Add('username=' edit6.Text);
IdHTTP1.Post(sPostUrl, params, respStream);
richedit1.Text := respStream.DataString;
params.Free;
FINALLY

END;

end;
kuraki5336
一般會員


發表:10
回覆:19
積分:20
註冊:2010-06-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2016-10-04 18:00:50 IP:125.224.xxx.xxx 訂閱
https://goo.gl/photos/UmKAmDX7SQpfuThg7
程式碼 跟 內容物我貼在上面了 沒問題呢

我註解了三行
//idhttp1.HandleRedirects := true;
//idhttp1.Request.ContentType := 'application/x-www-form-urlencoded; charset=UTF-8';
//idhttp1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko/20100101 Firefox/12.0';

增加一行
IdHTTP1.ReadTimeout := 30;

改了一個字
IdHTTP1.Post(sPostUrl, params, respStream);
你沒這個字串↑↑↑↑↑↑↑↑↑↑↑我把它改成Posturl ....

===================引 用 darren99168 文 章===================
都有設定阿 DLL檔也有放了
測試了其他的網站是可行的 但利用YAHOO信箱測試登入就會發生問題,不知是哪邊錯了
===================引 用 kuraki5336 文 章===================
你好像是要連線 https: ?

但並沒有看到你設定 TIdSSLIOHandlerSocketOpenSSL ?

又或者是使用的是可視元件但SSL

FHandlerSSL.SSLOptions.Method := sslvSSLv23;
要再設定。

不太肯定的答案不過可以先往這找找。又或者可能是沒有 ssleay32.dll 還有一個應該叫做 libssl.dll

===================引 用 darren99168 文 章===================
請問在利用IDHHTTP寫以下 YAHOO信箱自動登錄時發生Socket error #0
不知道錯誤在哪邊
有前輩可以指教一下一嗎? 先謝謝前輩們
procedure TForm1.Button4Click(Sender: TObject);
const PostUrl = 'https://login.yahoo.com/config/login?.intl=tw&.done=https://tw.yahoo.com/';
var
respStream : TStringStream;
params : TStringList;
begin
params := TStringList.Create;
respStream := TStringStream.Create('');
TRY
idhttp1.HandleRedirects := true;
idhttp1.Request.ContentType := 'application/x-www-form-urlencoded; charset=UTF-8';
idhttp1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko/20100101 Firefox/12.0';
params.Add('.persistent=y');
params.Add('_crumb=HtQYlq0n');
params.Add('_format=json');
params.Add('_loadtpl=1');
params.Add('_seqid=2');
params.Add('_ts=1475463657');
params.Add('_uuid=6T3ZyxViyUuC');
params.Add('countrycode=886');
params.Add('otp_channel=');
params.Add('passwd=' edit7.Text);
params.Add('signin=authtype');
params.Add('username=' edit6.Text);
IdHTTP1.Post(sPostUrl, params, respStream);
richedit1.Text := respStream.DataString;
params.Free;
FINALLY

END;

end;
編輯記錄
kuraki5336 重新編輯於 2016-10-04 18:02:17, 註解 無‧
darren99168
一般會員


發表:7
回覆:9
積分:3
註冊:2016-05-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2016-10-04 20:53:10 IP:114.35.xxx.xxx 訂閱
https://goo.gl/photos/N9tfYWCnqNjHEXK18
圖片已上傳
感謝前輩指導,但我一樣依你的方式修正了一次,仍然無法成功,相關設定如圖
請問前輩是用哪一版本的delphi寫的
kuraki5336
一般會員


發表:10
回覆:19
積分:20
註冊:2010-06-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2016-10-05 09:20:48 IP:125.224.xxx.xxx 訂閱
DelphiXe 、 DELPHI BERLIN 都測過。

我覺得呢應該還是在那兩顆eayssl.DLL 那個的問題我把我電腦的這兩個給你你放到你專案下試試看,說不定就好了。

https://drive.google.com/file/d/0Bw65pqTUp5t8SDN4eFpVNDFjcVk/view?usp=sharing

因為你說其他post 沒問題。

我覺得吧更像是環境有問題

Socket error #0Direct send error. 直接傳送錯誤....從未遇過

還是用你的版本把範本放上來我幫你run看看.....驗證一下是不是環境問題。


===================引 用 darren99168 文 章===================
https://goo.gl/photos/N9tfYWCnqNjHEXK18
圖片已上傳
感謝前輩指導,但我一樣依你的方式修正了一次,仍然無法成功,相關設定如圖
請問前輩是用哪一版本的delphi寫的
darren99168
一般會員


發表:7
回覆:9
積分:3
註冊:2016-05-06

發送簡訊給我
#7 引用回覆 回覆 發表時間:2016-10-05 11:30:40 IP:114.35.xxx.xxx 訂閱
感謝 Kuraki5336 熱心解答,因為我是用 DELPHI 2010寫的,有用你的dll測試,似乎版本會出錯
以下是我的測試檔,再麻煩幫我RUN看看,謝謝
https://drive.google.com/file/d/0B64p8hTb6rvrZEJ3eTFKb1hQdGs/view?usp=sharing
kuraki5336
一般會員


發表:10
回覆:19
積分:20
註冊:2010-06-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2016-10-05 12:36:51 IP:125.224.xxx.xxx 訂閱
測試了一下你包出來的exe 的確無法執行。

但我拿你的直接source 直接編譯後是可以用的。
可能原因在於你的runtime 這可能要請問其他高手們了。

delphi 2010的話要等我回家才能在測看看了。

===================引 用 darren99168 文 章===================
感謝 Kuraki5336 熱心解答,因為我是用 DELPHI 2010寫的,有用你的dll測試,似乎版本會出錯
以下是我的測試檔,再麻煩幫我RUN看看,謝謝
https://drive.google.com/file/d/0B64p8hTb6rvrZEJ3eTFKb1hQdGs/view?usp=sharing
darren99168
一般會員


發表:7
回覆:9
積分:3
註冊:2016-05-06

發送簡訊給我
#9 引用回覆 回覆 發表時間:2016-10-05 12:42:41 IP:114.35.xxx.xxx 訂閱
恩恩好的 辛苦你了
再麻煩幫我測測 在delphi 2010執行的狀況,謝謝
darren99168
一般會員


發表:7
回覆:9
積分:3
註冊:2016-05-06

發送簡訊給我
#10 引用回覆 回覆 發表時間:2016-10-07 01:10:05 IP:114.35.xxx.xxx 訂閱
安裝了XE 10 測試了一下 的確可以功能正常,但2010版本出錯在哪仍未找出

不過還是謝謝 kuraki5336 前輩一直抽空幫忙測試 ,真是辛苦了^^

sparklerl
一般會員


發表:2
回覆:5
積分:1
註冊:2007-03-22

發送簡訊給我
#11 引用回覆 回覆 發表時間:2017-06-27 16:34:29 IP:49.77.xxx.xxx 未訂閱

可能是IdHTTP版本的问题。

http://embarcadero.newsgroups.archived.at/public.delphi.internet.winsock/201006/1006244279.html
系統時間:2017-11-20 12:03:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!