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
21 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
  Statusbar da hintler çıkmıyor. (Çözüldü) cinarbil 3 277 22-08-2022, Saat: 09:39
Son Yorum: cinarbil
Photo FDMemTable SavetoFile hatası KUNTAY 2 198 15-08-2022, Saat: 12:57
Son Yorum: KUNTAY
  android derleme hatası erdogan 3 306 05-08-2022, Saat: 15:24
Son Yorum: erdogan
  D11 compile hatası shooterman 9 760 29-07-2022, Saat: 20:06
Son Yorum: Jakarta2
  Xml parse hatası hbulus 4 432 21-07-2022, Saat: 10:41
Son Yorum: hbulus



Konuyu Okuyanlar: 1 Ziyaretçi