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.
Yazılım Topluluğumuz -> Tıklayın
Kişisel Tanıtım Sitem -> Tıklayın
22 y/o, sadece öğrenmeye odaklanmış, insancık..
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
  Sistem Bu Uygulamada Yığın Tabanlı Bir Arabelleğin Taştığını Algıladı Hatası sunbeki 0 72 22-03-2023, Saat: 15:25
Son Yorum: sunbeki
  cozuldu-SQL KODU CALISMIYOR sadikacar60 5 230 19-03-2023, Saat: 11:57
Son Yorum: mcuyan
  CreateOleObject Geçersiz sınıf dizesi hatası Jakarta2 1 187 03-03-2023, Saat: 12:10
Son Yorum: sabanakman
Photo RLINK32: Too many resources to handle hatası HuseyinF 4 682 28-02-2023, Saat: 16:20
Son Yorum: COMMANDX
  ClientDataSet ve XML - Kaydetme Hatası nehirnnn 3 271 25-02-2023, Saat: 00:42
Son Yorum: Halil Han BADEM



Konuyu Okuyanlar: 1 Ziyaretçi