Skip to content

Latest commit

 

History

History
415 lines (294 loc) · 11.8 KB

README.fa.md

File metadata and controls

415 lines (294 loc) · 11.8 KB

ستاره دادن فراموش نشود:)⭐️

webi کتابخانه سریع و پر از ویژگی ها برای اتصال به سرور است و از ویژگی های آن میتوان به راحتی و کش کردن پاسخ ها برای نرم افزار های اندرویدی اشاره کرد که میتوان گفت قابل مقایسه و حتی بهتر از کتابخانه های مشابه است

  • راحتی در استفاده
  • برنامه نویسی کمتر
  • چند نخی و پر سرعت
  • دربرداشتن روش های مختلف برای کش
  • قابلیت دریافت jsonArray,jsonObject,xml
  • راحتی در ارسال و پست مقادیر به سرور


چگونه webi را دانلود کنیم

Gradle

این کد را به build.gradle پروژه خود اضافه کنید
    allprojects {
         repositories {
             ...
             maven { url 'https://jitpack.io' }
         }
    }
این کد را به build.gradle ماژول خود اضافه کنید
    compile 'com.github.alirezaashrafi:webi:4.1.0'

Maven

این کد را که مربوط به مخزن JitPack است را به فایل build خود اضافه کنید
  <repositories>
    <repository>
        <id>jitpack.io</id>
      <url>https://jitpack.io</url>
    </repository>
  </repositories>
این کد را به dependency اضافه کنید
  <dependency>
    <groupId>com.github.alirezaashrafi</groupId>
    <artifactId>webi</artifactId>
    <version>4.1.0</version>
  </dependency>

چگونه از webi استفاده کنید

  Webi.with(context)
      .from("http://www.example.com")
      .onResponse(new OnResponse() {
          @Override
          public void Response(String response, String where) {
              //response متن خوانده شده از لینک مورد نظر است
              //where محل دریافت این پاسخ را نمایش نشان میدهد که ایا از سرور دریافت شده یا از حافظه کش
          }
      }).connect();

تلاش مجدد
  .setRetryTimes(int times) //پیش فرض یک دفعه است

  .setOnRetry(new OnRetry() {
      @Override
      public void retry(int remainingRetrys) {
          //زمانی که تلاش مجدد اجرا شود این تابع صدا زده میشود
      }
  });

ارسال و پست داده ها توسط webi

addPost(key,value,description) نکته: description اطلاعات اضافی برای برنامه نویس است و به سرور ارسال نمیشود

  Webi.with(context)
      .from("http://www.example.com")
      .addPost("username","webi")
      .addPost("password","123456")
      .connect();
و دریافت مقادیر در php
  <?php
      $username = $_POST['username'];  //value webi
      $password = $_POST['password'];  //value 123456
  ?>
لیستی از پست های خود بسازید
  List<Posts>postsList = new ArrayList<>();
  Posts posts = new Posts();
  posts.setKey("...");
  posts.setValue("...");
  postsList.add(posts);
  ....

  Webi.with(context)
    .from("http://www.example.com")
    .addPostList(postsList)
    .connect();

اضافه کردن پارامتر های ارسالی GET
  Webi.with(context)
      .from("http://www.example.com")
      .addGet("username","webi")
      .addGet("password","123456")
      .connect();

      //res http://www.example.com?username=webi&password=123456
و دریافت مقادیر در PHP
  <?php
      $username = $_GET['username'];  //value webi
      $password = $_GET['password'];  //value 123456
  ?>

افزودن Header ها
  Webi.with(context)
      .from("http://www.example.com")
      .addHeader("Content-Type","application/json")
      .addHeader("Authorization","Bearer.....")
      .connect();
اگر میخواهید bearer token را در header ارسال کنید از این تابع استفاده کنید
  .setBearerToken("e.g. GJKRY78579tFYIlkdhiipEE908y0FD80")

درخواست JsonArray , JsonObject و XML با webi
  Webi.with(this).from("http://www.example.com")
      .setOnJsonArrayReceive(new OnJsonArrayReceive() {
          @Override
          public void jsonArray(JSONArray jsonArray, String where) {

              //توجه کنید jsonArray با کاراکتر های روبه رو شروع و خاتمه میپذیرد '[',']'

          }
      })
      .setOnJsonObjectReceive(new OnJsonObjectReceive() {
          @Override
          public void jsonObject(JSONObject jsonObject, String where) {

              //توجه کنید اولین کاراکتر JsonObject '{' است و اخرین نیز '}'

          }
      })
      .setOnXmlRecevie(new OnXmlReceive() {
          @Override
          public void xml(Document xml, String where) {


          }
      }).connect();

کش کردن در webi
سه روش برای کس در webi وجود دارد
  • ram cache - بسیار سریع ولی نا ماندگار
  • xml cache - سریع ولی در این کتابخانه برای آن محدودیت 50 داده قرار داده شده است و در صورتی که بیش از آن مقدار باشد اطاعات پاک شده و از نوع ذخیره میشود
  • sql cache -نامحدود در ذخیره سازی بیش از 5000 سند اما سرعت کمتر نسبت به بقیه
  Webi.with(context)
      .from("http://www.example.com")
      .setSqlCache(true) //It is better to have only one active Caching method
      .setXmlCache(true)
      .setRamCache(true)
      .connect();
.setSqlCache(true,key)

.setXmlCache(true,key)

کلید اخصاصی شما برای ذخیره آن سند و اگر وارد نکنید به صورت خودکار به صورت هش شده تولید میشود
فعالیت افلاین

زمانی که فعالیت افلاین فعال باشد اطلاعات فقط از حافظه خوانده میشود و حافظه ها اپدیت نمیشود

  .setWordOffline(true)

رمز نگاری محتوا حافظه ها
زمانی که فعال باشد داده ها قبل از ذخیره در حافظه کش رمزنگاری میشود
  .setEncryptCache(true)

تنظیم تایم اوت های اختصاصی خود
  .setConnectTimeOut(10000)
  .setReadTimeOut(10000)
  //پیش فرض برای هر دو پنج هزار میلی ثانیه است

دریافت زمان پاسخ گویی
  Webi.with(context)
    .from("http://www.example.com")
    .getResponseTime(new GetResponseTime() {
        @Override
        public void time(long time) {
            //e.g. 430 ms
        }
    }).

تابعی برای زمانی که درخواست ناموفق باشد
  .setOnFailed(new OnFailed() {
      @Override
      public void failed(int code) {
          //code is http response code e.g. 404
      }
  }).

استفاده از proxy در Webi
.setProxy(host,port).
   or
.setProxy(host,port,username,password).

()WebiConfig.init

از این کلاس برای تغییر پیش فرض های webi استفاده کنید

    WebiConfig.init()
        .setDefaultUrl("http://alirezaashrafi.ir")
        .setDefaultConnectTimeOut(15000)
        .setDefaultReadTimeOut(15000);

    Webi.with(this).onResponse(new OnResponse() {
        @Override
        public void Response(String res, String where) {

        }
    });
بهتر است که تنظیمات پیشفرض خود را قبل از همه و در کلاس application تنظیم کنید
  public class myApplication extends Application {
      @Override
      public void onCreate() {
          WebiConfig.init()
                  .setDefaultUrl("http://alirezaashrafi.ir")
                  .setDefaultConnectTimeOut(15000)
                  .setDefaultReadTimeOut(15000);


          super.onCreate();
      }
  }
manifest
<manifest>
    <application
        android:name=".myApplication"
        ...
        >

    </application>
</manifest>
برخی از تابع های کلاس WebiConfig


لایسنس

Copyright 2017 Alireza Ashrafi

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.



اگر این کتابخانه مورد پسند شما بود ستاره دادن و فالود کردن من رو فراموش نکنید⭐️❤️️💙