Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alirezaashrafi/webi

Webi is an Android HTTP library. Fast, Reliable, and Easy to use. better performance using a smart caching system for requests and responses.
https://github.com/alirezaashrafi/webi

android-library androidhttp cache http-library json jsonrequest proxy

Last synced: 5 days ago
JSON representation

Webi is an Android HTTP library. Fast, Reliable, and Easy to use. better performance using a smart caching system for requests and responses.

Awesome Lists containing this project

README

        






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

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


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



english readme


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

Gradle

این کد را به build.gradle پروژه خود اضافه کنید

```java
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```

این کد را به build.gradle ماژول خود اضافه کنید

```java
compile 'com.github.alirezaashrafi:webi:4.1.0'
```

Maven

این کد را که مربوط به مخزن JitPack است را به فایل build خود اضافه کنید

```xml


jitpack.io
https://jitpack.io


```

این کد را به dependency اضافه کنید

```xml

com.github.alirezaashrafi
webi
4.1.0

```


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

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


تلاش مجدد

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

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


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

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

```java
Webi.with(context)
.from("http://www.example.com")
.addPost("username","webi")
.addPost("password","123456")
.connect();
```

و دریافت مقادیر در php

```php

```

لیستی از پست های خود بسازید

```java
ListpostsList = 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

```java
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

```


افزودن Header ها

```java
Webi.with(context)
.from("http://www.example.com")
.addHeader("Content-Type","application/json")
.addHeader("Authorization","Bearer.....")
.connect();
```

اگر میخواهید bearer token را در header ارسال کنید از این تابع استفاده کنید

```java
.setBearerToken("e.g. GJKRY78579tFYIlkdhiipEE908y0FD80")
```


درخواست JsonArray , JsonObject و XML با webi

```java
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 سند اما سرعت کمتر نسبت به بقیه

```java
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)

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

فعالیت افلاین

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

```java
.setWordOffline(true)
```


رمز نگاری محتوا حافظه ها

زمانی که فعال باشد داده ها قبل از ذخیره در حافظه کش رمزنگاری میشود

```java
.setEncryptCache(true)
```


تنظیم تایم اوت های اختصاصی خود

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


دریافت زمان پاسخ گویی

```java
Webi.with(context)
.from("http://www.example.com")
.getResponseTime(new GetResponseTime() {
@Override
public void time(long time) {
//e.g. 430 ms
}
}).
```


تابعی برای زمانی که درخواست ناموفق باشد

```java
.setOnFailed(new OnFailed() {
@Override
public void failed(int code) {
//code is http response code e.g. 404
}
}).
```


استفاده از proxy در Webi

```java
.setProxy(host,port).
or
.setProxy(host,port,username,password).

```


()WebiConfig.init

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

```java
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 تنظیم کنید

```java
public class myApplication extends Application {
@Override
public void onCreate() {
WebiConfig.init()
.setDefaultUrl("http://alirezaashrafi.ir")
.setDefaultConnectTimeOut(15000)
.setDefaultReadTimeOut(15000);

super.onCreate();
}
}
```

manifest

```XML

```

برخی از تابع های کلاس 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.


برنامه نویس




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

در نهایت از دیگر کتابخانه ها و پروژه های ما بازدید کنید