• 26-09-2022, 11:13:19
    #1
    ERP
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba, herkese kolay gelsin arkadaşlar.

    Ofiste bir API kullanıyoruz. API içerisinde 110.000 adet veri mevcut. Bu API'yi kullanarak ben her sorguda 10.000 adet çekebiliyorum. Bu limiti nasıl yükseltebilirim acaba?

    Ben her sorguda tüm verilerin gelmesini istiyorum. Mevcut kullandığım kodu aşağıda paylaşıyorum. Yardımlarınız için şimdiden teşekkürler.

    <?php
    
    $curl = curl_init();
    
    curl_setopt_array($curl, array(
      CURLOPT_URL => 'http://192.168.1.1/ws/servis.asmx',
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => '',
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 0,
      CURLOPT_FOLLOWLOCATION => true,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => 'POST',
      CURLOPT_POSTFIELDS =>'<?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <arama xmlns="http://tempuri.org/">
          <firmakod>API kodum</firmakod>
          <idno>0</idno>
          <arama></arama>
        </arama>
      </soap:Body>
    </soap:Envelope>',
      CURLOPT_HTTPHEADER => array(
        'Content-Type: text/xml'
      ),
    ));
    
    $response = curl_exec($curl);
    
    curl_close($curl);
    echo $response;
  • 26-09-2022, 11:19:51
    #2
    Api "sayfalama" olacak şekilde düzenlenmediyse yapacak birşeyiniz yok. ama apiye sayfadaki veri sayısı gönderilebiliyosa o zaman tek seferde ne kadar veri çekeceğinizi belirleyebilirsiniz.
    Tamamen apinin durumuyla alakalı bir durumu. Apide bu şekilde bir özellik yoksa 10.000 adetli şekilde çekmeye mecbursunuz.
  • 26-09-2022, 11:30:51
    #3
    "http://192.168.1.1/ws/servis.asmx " sayfası sizin kontrolünüzde ise düzenlemeyi orada yapmanız gerekli.
  • 26-09-2022, 11:35:25
    #4
    Tüm verilerin gelmesini istiyorsanız API'ı düzenlemeniz gerekiyor.
  • 26-09-2022, 11:43:26
    #5
    Şöyle ki arkadaşlar,

    <arama></arama> bölümüne ilk çektiğim verilerin son stok kodunu (10.000) girdiğim zaman ikinci 20.000 i çekiyorum. Her seferinde son stok kodunu girmem gerekiyor.

    operawebuser adlı üyeden alıntı: mesajı görüntüle
    Api "sayfalama" olacak şekilde düzenlenmediyse yapacak birşeyiniz yok. ama apiye sayfadaki veri sayısı gönderilebiliyosa o zaman tek seferde ne kadar veri çekeceğinizi belirleyebilirsiniz.
    Tamamen apinin durumuyla alakalı bir durumu. Apide bu şekilde bir özellik yoksa 10.000 adetli şekilde çekmeye mecbursunuz.
    salihbey24 adlı üyeden alıntı: mesajı görüntüle
    "http://192.168.1.1/ws/servis.asmx " sayfası sizin kontrolünüzde ise düzenlemeyi orada yapmanız gerekli.
    WebKadir adlı üyeden alıntı: mesajı görüntüle
    Tüm verilerin gelmesini istiyorsanız API'ı düzenlemeniz gerekiyor.
  • 26-09-2022, 11:46:49
    #6
    ERP adlı üyeden alıntı: mesajı görüntüle
    Şöyle ki arkadaşlar,

    <arama></arama> bölümüne ilk çektiğim verilerin son stok kodunu (10.000) girdiğim zaman ikinci 20.000 i çekiyorum. Her seferinde son stok kodunu girmem gerekiyor.
    Curl kodunu döngüye alarak da yapabilirsiniz ancak performans sorunları oluşacaktır.
  • 26-09-2022, 12:07:20
    #7
    operawebuser adlı üyeden alıntı: mesajı görüntüle
    Api "sayfalama" olacak şekilde düzenlenmediyse yapacak birşeyiniz yok. ama apiye sayfadaki veri sayısı gönderilebiliyosa o zaman tek seferde ne kadar veri çekeceğinizi belirleyebilirsiniz.
    Tamamen apinin durumuyla alakalı bir durumu. Apide bu şekilde bir özellik yoksa 10.000 adetli şekilde çekmeye mecbursunuz.
    salihbey24 adlı üyeden alıntı: mesajı görüntüle
    "http://192.168.1.1/ws/servis.asmx " sayfası sizin kontrolünüzde ise düzenlemeyi orada yapmanız gerekli.
    WebKadir adlı üyeden alıntı: mesajı görüntüle
    Tüm verilerin gelmesini istiyorsanız API'ı düzenlemeniz gerekiyor.
    WebKadir adlı üyeden alıntı: mesajı görüntüle
    Curl kodunu döngüye alarak da yapabilirsiniz ancak performans sorunları oluşacaktır.
    Örnek verebilir misiniz bunu nasıl yapabilirim
  • 26-09-2022, 12:19:25
    #8
    ERP adlı üyeden alıntı: mesajı görüntüle
    Örnek verebilir misiniz bunu nasıl yapabilirim
    Aşağıdaki kod ile tüm veriler ekrana basılır.
    <?php
    $arama = 0;
    $verisayisi = 110000;
     for ($i = 0; $i <= $verisayisi/10000; $i++) {
    $arama=$arama+10000;
    $curl = curl_init();
     
    curl_setopt_array($curl, array(
      CURLOPT_URL => 'http://192.168.1.1/ws/servis.asmx',
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => '',
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 0,
      CURLOPT_FOLLOWLOCATION => true,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => 'POST',
      CURLOPT_POSTFIELDS =>'<?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <arama xmlns="http://tempuri.org/">
          <firmakod>API kodum</firmakod>
          <idno>0</idno>
          <arama>'.($arama > 0 ? $arama : "").'</arama>
        </arama>
      </soap:Body>
    </soap:Envelope>',
      CURLOPT_HTTPHEADER => array(
        'Content-Type: text/xml'
      ),
    ));
     
    $response = curl_exec($curl);
     
    curl_close($curl);
    echo $response;
    
    }
  • 26-09-2022, 13:00:49
    #9
    WebKadir adlı üyeden alıntı: mesajı görüntüle
    Aşağıdaki kod ile tüm veriler ekrana basılır.
    <?php
    $arama = 0;
    $verisayisi = 110000;
     for ($i = 0; $i <= $verisayisi/10000; $i++) {
    $arama=$arama+10000;
    $curl = curl_init();
     
    curl_setopt_array($curl, array(
      CURLOPT_URL => 'http://192.168.1.1/ws/servis.asmx',
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => '',
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 0,
      CURLOPT_FOLLOWLOCATION => true,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => 'POST',
      CURLOPT_POSTFIELDS =>'<?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <arama xmlns="http://tempuri.org/">
          <firmakod>API kodum</firmakod>
          <idno>0</idno>
          <arama>'.($arama > 0 ? $arama : "").'</arama>
        </arama>
      </soap:Body>
    </soap:Envelope>',
      CURLOPT_HTTPHEADER => array(
        'Content-Type: text/xml'
      ),
    ));
     
    $response = curl_exec($curl);
     
    curl_close($curl);
    echo $response;
    
    }
    Çok teşekkür ediyorum, kontrol edip bilgi vereceğim.