Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
HTTP/1.1 403 forbidden Yetkilendirme Hatası - [Çözüldü]
#1
 
 
Var
PostData:TStringList;
JSonValue : TJSONObject;
response,error:string;
status:Integer;
Begin
  try
  PostData:=TStringList.Create;

   try
     PostData.Add('method=sendfactor');
     PostData.Add('sendType=1');
     PostData.Add('sendTo='+EMP_PHONE);
     PostData.Add('sourceType=2');
     PostData.Add('userId='+LOGIN_ID );
     Memo1.Lines:= PostData;
     IdHTTP1.Request.CustomHeaders.Values['Authorization'] :='Anahtar kod';
     response := IdHTTP1.Post('URL',PostData);

     JSonValue := TJSONObject.ParseJSONValue(response) as TJSONObject;
     status := JSonValue.GetValue<Integer>('status');
     Error := JSonValue.GetValue<String>('error');
     if (status = 200) then
     Begin
       Data:= JSonValue.GetValue<String>('data');
       Memo1.Text := response;
     End;

   finally

   end;
  except on E: EIdHTTPProtocolException do
    Begin
       if E.ErrorCode = 400 then
      begin
       response:=e.ErrorMessage;
       JSonValue := TJSONObject.ParseJSONValue(response) as TJSONObject;
       status := JSonValue.GetValue<Integer>('status');
       Error := JSonValue.GetValue<String>('error');
       Memo1.Text:=response;
         if (status = 400) then
       Begin
      

        End Else
       
        End;

       End;
       Showmessage(Error);
       End;

       end;

       if E.ErrorCode = 403 then
      begin
       response:=E.ErrorMessage;
       ShowMessage(E.message);
       Memo2.Text:=response;
      end;

    End;
  end;




Merhabalar, yukarıda da görüleceği üzere idhttp1.pos ile ilgili alana istek gönderiyorum.
Şirket ağındayken bir sıkıntı yaşamıkyorum , ama şirket ağı dışındaki tüm ağlardan istek gönderdiğim zaman response olarak   HTTP/1.1 403 forbidden dönüyor hata kodu da err code :1010 . tarayıcıda dnediğimde{"status":400,"error":"Eksik Parametreler SERVICE","data":[]}  bu şekilde sorunsuz olarak geliyor , 
ama idhttpost ile gönderdiğimde bir tek şirket ağında sorunsuz çalışıyor ip ile alakalı diyicem ama tarayıcıdan gönderdiğimde problem yok o zaman ben neyi gözardı ediyor olabilirim bunun sebebi ne olabilir acaba ?

Yardımlarınız için şimdiden teşekkür ederim 
Cevapla
#2
Farklı ağlarda farklı sonuçlar oluyorsa ip kısıtı olabilir.
Ekstra olarak şunu verip denemenizi öneririm.
IdHttp1.HandleRedirects := True;
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#3
(16-09-2022, Saat: 16:55)narkotik Adlı Kullanıcıdan Alıntı: Farklı ağlarda farklı sonuçlar oluyorsa ip kısıtı olabilir.
Ekstra olarak şunu verip denemenizi öneririm.
IdHttp1.HandleRedirects := True;

Hemen deniyorum 
ama farklı ağlarda taratıcılarda bir sıkıntı yaşamıyorum sadece idhttppost ile gönderirken yaşıyorum

(16-09-2022, Saat: 16:55)narkotik Adlı Kullanıcıdan Alıntı: Farklı ağlarda farklı sonuçlar oluyorsa ip kısıtı olabilir.
Ekstra olarak şunu verip denemenizi öneririm.
IdHttp1.HandleRedirects := True;

Malesef durum aynı değişen birşey yok.
Cevapla
#4
Open Dns ile alakalı olabilir mi ?
Cevapla
#5
Bu sorun ile daha önce karşılaşan olmadı mı ben ilk miyim Smile
Cevapla
#6
(19-09-2022, Saat: 11:58)Mesut Adlı Kullanıcıdan Alıntı: Bu sorun ile daha önce karşılaşan olmadı mı ben ilk miyim Smile

Merhaba,
konu idHttp ile ilgili değil gibi duruyor. 
Sanırım IP kontrolü parametreleri gönderdikten sonra yapılıyor.
Bu yüzden browser ile giriş yaptığınızda sorun yaşamıyorsunuz.
Browser üzerinden anladığım kadarı ile belirli bir URL adresine GET isteğinde bulunuyorsunuz.
Aynı URL ile idHttp kullanarak Get isteği gönderin browserdan aldığınız hatayı alırsınız.
Bu tamamı ile API sistemini yazan geliştiricinin mantığında sanırım.
Normalde her istekte IP kontrolü yapılmalı ama geliştirici URI veya parametre değerlerine göre IP kontrolü yapıyor olabilir.
Yani yumurta kapıya dayanınca ip kontrolü yapıyor. 
Bu bir varsayım, yüksek olasılıkla bundan kaynaklıdır. 
IP izni isteyin veya API geliştiricisine başvurun.
kisisel_logo_dark.png
WWW
Cevapla
#7
Merhabalar ,
Sorun çözüldü sorun UserAgent Kaynaklıydı

Idhttp bileşeni user agent Mozilla/3.0 (compatible; Indy Library) olarak geçtiği için Cloudfare bunu engelliyordu Useragent Değiştirdim sorun düzeldi Cloudfare tarafından kabul edilen bir parametre olarak değiştirince düzeli teşekkürler.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  UrlDownloadFile Hatası mcuyan 7 416 18-02-2024, Saat: 23:06
Son Yorum: mcuyan
  Çok Satırlı Filtreleme [Çözüldü] bünyamin68 12 1.034 14-02-2024, Saat: 22:42
Son Yorum: mustafaozpinar
  Gmail Mail Gönderirken Connection Gracefuly Hatası COMMANDX 0 125 02-02-2024, Saat: 15:21
Son Yorum: COMMANDX
  [ÇÖZÜLDÜ] macos işletim sistemine program yazmak shooterman 5 323 02-02-2024, Saat: 09:54
Son Yorum: shooterman
  COZULDU veritabani prg yerine ne kullanabilirim. sadikacar60 8 596 29-01-2024, Saat: 18:41
Son Yorum: sadikacar60



Konuyu Okuyanlar: 1 Ziyaretçi