Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/alirezaashrafi/webi
- Owner: alirezaashrafi
- License: apache-2.0
- Created: 2017-12-26T15:49:03.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-08-15T03:09:09.000Z (about 6 years ago)
- Last Synced: 2024-08-01T21:47:24.275Z (3 months ago)
- Topics: android-library, androidhttp, cache, http-library, json, jsonrequest, proxy
- Language: Java
- Homepage: http://alirezaashrafi.ir/webi
- Size: 494 KB
- Stars: 27
- Watchers: 4
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: README.fa.md
- License: LICENSE
Awesome Lists containing this project
- awesome-android - webi - Webi is an Android HTTP library. Fast, Reliable, and Easy to use. better performance using a smart caching system for requests and respon… (Uncategorized / Uncategorized)
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 athttp://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.
برنامه نویس
- علیرضا اشرفی
- وبسایت : alirezaashrafi.ir
- ایمیل : [email protected]
- موبایل & واتس اپ 09013962648
- تلگرام : @dr_khaki
اگر این کتابخانه مورد پسند شما بود ستاره دادن و فالود کردن من رو فراموش نکنید⭐️❤️️💙
در نهایت از دیگر کتابخانه ها و پروژه های ما بازدید کنید