![]() |
|
IdHTTP HTTP/1.1 405 - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7) +--- Konu Başlığı: IdHTTP HTTP/1.1 405 (/showthread.php?tid=6943) |
IdHTTP HTTP/1.1 405 - Altıner - 22-09-2022 Merhaba, Aşağıdaki kodlarla "delphican.com" sorunsuz çalışıyor "amazon.com" HTTP/1.1 405 Method Not Allowed hatası alıyorum. Hatayı araştırdığımda UserAgent ile ilgili yazılar okudum fakat sorunu bir türlü çözemedim. Sonunu nasıl çözerim? First chance exception at $75EC0B42. Exception class EIdHTTPProtocolException with message 'HTTP/1.1 405 Method Not Allowed'. Process Amazonlar.exe (8212) function TMainForm.AmazonSearch(Const Search: String): String;
var
IdHTTP: TIdHttp;
Request: TStringList;
begin
Request := TStringList.Create;
IdHTTP := TIdHttp.Create;
try
IdHTTP.AllowCookies := True;
IdHTTP.HandleRedirects := True;
IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
// IdHTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0';
IdHTTP.Post('https://www.amazon.com/', Request);
Result := IdHTTP.Get('https://www.amazon.com/'); // https://www.amazon.com/s?k=car+parts
finally
IdHTTP.Free;
Request.Free;
end;
end;
procedure TMainForm.Button1Click(Sender: TObject);
var
I: Integer;
ResultHtml: String;
Line, Rows, Doc: OleVariant;
begin
TButton(Sender).BeginUpdate;
ResultHtml := AmazonSearch('s?k=car+parts');
Doc := coHTMLDocument.Create as IHTMLDocument2;
Doc.Write(ResultHtml);
Doc.Close;
try
Rows := Doc.Body.All.Tags('span'); // Spandan verileri almaya başlıyoruz
for I := 0 to Rows.Length - 1 do
begin
Line := Rows.Item(I);
if Line.className = 'welcome' then
begin
Memo1.Lines.Add(Rows.Item(I).InnerText)
end;
end;
finally
TButton(Sender).EndUpdate;
end;
end;
IdHTTP HTTP/1.1 405 - Hayati - 22-09-2022 var IdHttp : TIdHttp; IdSSLIOHandlerSocket : TIdSSLIOHandlerSocketOpenSSL; try IdSSLIOHandlerSocket.PassThrough := True; IdSSLIOHandlerSocket.SSLOptions.Method := TIdSSLVersion.sslvTLSv1_2; IdHttp.IOHandler := IdSSLIOHandlerSocket; IdHttp.HandleRedirects := True; // Yeni URL path yönlendirilirse izin versin... IdHttp.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'; // 'Dalvik/2.1.0 (Linux; U; Android 8.0.0; SM-N950F Build/R16NW)'; Cvp: IdHTTP HTTP/1.1 405 - Altıner - 22-09-2022 (22-09-2022, Saat: 08:29)Hayati Adlı Kullanıcıdan Alıntı:var IdHttp : TIdHttp; IdSSLIOHandlerSocket : TIdSSLIOHandlerSocketOpenSSL; try IdSSLIOHandlerSocket.PassThrough := True; IdSSLIOHandlerSocket.SSLOptions.Method := TIdSSLVersion.sslvTLSv1_2; IdHttp.IOHandler := IdSSLIOHandlerSocket; IdHttp.HandleRedirects := True; // Yeni URL path yönlendirilirse izin versin... IdHttp.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'; // 'Dalvik/2.1.0 (Linux; U; Android 8.0.0; SM-N950F Build/R16NW)'; amazon.com deneyince bu hatayı veriyor First chance exception at $75EC0B42. Exception class EIdHTTPProtocolException with message 'HTTP/1.1 405 Method Not Allowed'. Process Amazonlar.exe (11548) Böyle bir forum buldum ama anlamadım https://docs.aws.amazon.com/silk/latest/developerguide/user-agent.html https://developers.whatismybrowser.com/useragents/explore/operating_platform_string/amazon/ function TMainForm.AmazonSearch(Const Search: String): String;
var
IdHTTP: TIdHttp;
Request: TStringList;
IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
begin
Request := TStringList.Create;
IdHTTP := TIdHttp.Create;
try
IdHTTP.AllowCookies := True;
IdHTTP.HandleRedirects := True;
IdSSLIOHandlerSocket.PassThrough := True;
// IdSSLIOHandlerSocket.SSLOptions.Method := TIdSSLVersion.sslvTLSv1_2; /////PASİF YAPTIM HATA VERİYOR///////////////
// IdHTTP.IOHandler := IdSSLIOHandlerSocket; /////PASİF YAPTIM HATA VERİYOR///////////////
IdHTTP.HandleRedirects := True; // Yeni URL path yönlendirilirse izin versin...
IdHTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'; // 'Dalvik/2.1.0 (Linux; U; Android 8.0.0; SM-N950F Build/R16NW)';
IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
IdHTTP.Post('https://www.amazon.com/', Request);
Result := IdHTTP.Get('https://www.amazon.com/'); // https://www.amazon.com/s?k=car+parts
finally
IdHTTP.Free;
Request.Free;
end;
end;
delphican.com deneyince bu şekilde sorun yok function TMainForm.AmazonSearch(Const Search: String): String;
var
IdHTTP: TIdHttp;
Request: TStringList;
IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
begin
Request := TStringList.Create;
IdHTTP := TIdHttp.Create;
try
IdHTTP.AllowCookies := True;
IdHTTP.HandleRedirects := True;
IdSSLIOHandlerSocket.PassThrough := True;
// IdSSLIOHandlerSocket.SSLOptions.Method := TIdSSLVersion.sslvTLSv1_2; /////PASİF YAPTIM HATA VERİYOR///////////////
// IdHTTP.IOHandler := IdSSLIOHandlerSocket; /////PASİF YAPTIM HATA VERİYOR///////////////
IdHTTP.HandleRedirects := True; // Yeni URL path yönlendirilirse izin versin...
IdHTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'; // 'Dalvik/2.1.0 (Linux; U; Android 8.0.0; SM-N950F Build/R16NW)';
IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
IdHTTP.Post('http://www.delphican.com/', Request);
Result := IdHTTP.Get('http://www.delphican.com/'); // https://www.amazon.com/s?k=car+parts
finally
IdHTTP.Free;
Request.Free;
end;
end;
IdHTTP HTTP/1.1 405 - mcuyan - 22-09-2022 IdHTTP1.Request.ContentType := 'application/json'; IdHTTP1.Request.ContentEncoding := 'utf-8'; Denermisiniz... Cvp: IdHTTP HTTP/1.1 405 - Altıner - 23-09-2022 (22-09-2022, Saat: 19:45)mcuyan Adlı Kullanıcıdan Alıntı:IdHTTP1.Request.ContentType := 'application/json'; IdHTTP1.Request.ContentEncoding := 'utf-8'; Yok hocam oladı 5 gündür uğraşıyoroum.
IdHTTP HTTP/1.1 405 - narkotik - 23-09-2022 IdHTTP.Post yapmanıza gerek var mı get ile text veriyi almak istemiyor musunuz Cvp: IdHTTP HTTP/1.1 405 - Altıner - 23-09-2022 (23-09-2022, Saat: 08:45)narkotik Adlı Kullanıcıdan Alıntı: IdHTTP.Post IdHTTP.Post ile o sayfayı alıyor diye biliyorum. Ben döngü ile en son sayfaya kadar olan verileri lmak isityorum. |