خوش آمدید

مهمان گرامی به انجمن کویک لرن خوش آمدی ، برای استفاده از تمامی امکانات در انجمن عضو شوید.


امیرحسین آقاجری

سوالات متداول و رفع مشکلات Amir_Retrofit

کتابخانه Amir_Retrofit   3 کاربر تاکنون رای داده است

  1. 1. از کتابخانه Amir_Retrofit راضی هستید ؟ :)

    • بله
      3
    • خیر
      0

لطفا وارد حساب کاربری خود شوید یا ثبت نام نمایید تا بتوانید رای خود را در نظر سنجی ارسال نمایید.

1 ارسال در این موضوع قرار دارد

رفع مشکلات و سوالات متداول Amir_Retrofit

ورژن لیب : ۲.۴۸ | خرید کتابخانه

ــــــــــــــــــــــــــــــــــــــــ

خب سوال اولی که برای همه ممکنه پیش بیاد این است که BaseUrl چیست و چه باید کرد ؟

برای مثال اگر ما BaseUrl رو آدرس سایت زیر قرار دهیم :

نقل قول

و هنگام ارسال ریکوئست تنها لینک زیر را قرار دهیم :

نقل قول

Url=/retrofit


نتیجه درخواست  ، لینک زیر خواهد بود :

نقل قول

شما همچنان برای لینک ریکوئست میتوانید آدرس یک لینک کامل را بدهید

نقل قول

Url=http://google.com/test

نتیجه میشه خود لینکی که دادید

ــــــــــــــــــــــــــــــــــــــــ

 

چگونه کش و کوکی را در رتروفیت غییر فعال کنیم ؟

Dim Builder As Amir_RetrofitBuilder
Builder.Initialize.BaseUrl("BaseUrl")
Builder.addCache(False)
Builder.addCookie(False)

Dim Retrofit As Amir_Retrofit
Retrofit.Initialize(Builder)

در کد بالا متد addCache که پارامتر ورودی برای فعال یا غییر فعال کردن کش میباشد و متد addCookie مثل کش برای غییر فعال کردن کوکی میباشد.

ــــــــــــــــــــــــــــــــــــــــ

چگونه TimeOut را تنظیم کنیم ؟

Dim TimeOut As Int = 2000
	Builder.connectTimeout(TimeOut)
	Builder.writeTimeout(TimeOut)
	Builder.readTimeout(TimeOut)

در کد بالا کافیست برای تنظیم TimeOut عدد متغییر را تنظیم کنید!

ــــــــــــــــــــــــــــــــــــــــ

چگونه هدر اضافه کنیم ؟

	Dim Header As Map
	Header.Initialize
	Header.Put("HeaderName","Value")
	Header.Put("HeaderName","Value")
	Builder.addHeader(Header)

متد addHeader برای اضافه کردن هدر میباشد که پارامتر دریافتی آن از نوع Map هست و میتونید هدر های خودتون رو به مپ اضافه کنید و به رتروفیت بدید.

ــــــــــــــــــــــــــــــــــــــــ

با خطای SSL یا ارور Network Error (Code : 100) مواجه شدید ؟

این خطا یکی از دلایل اصلی که دارد به دلیل وصل شدن به یک سایت که گواهی معتبری ندارد میباشد و باید بررسی  ssl را غییر فعال کنیم.

شما میتوانی این کار را با سه روش مختلف حل کنید :

1 - غییر فعال کردن بررسی ssl

Builder.skipSSLSocketFactory(True)

2 - تنظیم ssl پیشفرض توسط رتروفیت

Builder.addSSLSocketFactory2

3 - استفاده از حالت unsafe که باعث میشود تمام ssl ها را قبول کند و به سایت های خطرناک وصل شود

Builder.UnsafeMode(True)

ــــــــــــــــــــــــــــــــــــــــ

چگونه یک ریکوئست را کنسل کنیم ؟

بعد از اجرا هر ریکوئست به شما یک Object را بر میگرداند که از طریق آن میتوانید ریکوئست را کنسل کنید..

برای کنسل کردن ریکوئست از متد Unsubscribe استفاده میشود. نمونه کد :

Dim Request As Object
Request = Retrofit.Download(...
Retrofit.Unsubscribe(Request)

نکته : اگر پارامتر ورودی متد Unsubscribe را Null بدهید آخرین ریکوئست شما متوقف خواهد شد .

ــــــــــــــــــــــــــــــــــــــــ

چگونه از Sender به عنوان تگ استفاده کنیم ؟

شما باید قبل از اجرای ریکوئست از Sender استفاده کنید تا آن را در رویداد خود دریافت کنید. نمونه کد :

Retrofit.Sender="Download1"
Retrofit.Download("Amir","Link1")

Retrofit.Sender="Download2"
Retrofit.Download("Amir","Link2")

Sub Amir_onSucess (key as String,path as String,Name as String,FileSize as long)
Log(Sender) ' Get Tag '
 End Sub

ــــــــــــــــــــــــــــــــــــــــ

ارسال داده به فایر بیس :

Public Sub SendFCMMessage(EventName As String,Topic As String,API_KEY As String, Data As Map) As Object

   Dim Retrofit As Amir_Retrofit
Dim Builder as amir_Retrofitbuilder

Builder.initialize.baseurl("https://fcm.googleapis.com")

Builder.addHeader(CreateMap("Authorization","key=" & API_KEY))

   Retrofit.Initialize(Builder)

   Dim m As Map = CreateMap("to": $"/topics/${Topic}"$)
   m.Put("data", Data)

Return Retrofit.json(EventName,"/fcm/send", Retrofit.toJson(m))
   
End Sub

ــــــــــــــــــــــــــــــــــــــــ

آپلود عکس و فایل با استفاده از vb.net

کد سمت وب :

<WebMethod()>
Public Function UploadFiles() As String
  Try
    Dim length As Integer = Convert.ToInt32(Context.Request.InputStream.Length)

    If length = 0 Then
      Return "file size = 0"
    End If

    Dim filename As String = HttpContext.Current.Request.Headers("filename")

    If filename = "" Then
      Return "header needed not set"
    End If
    
    Dim postFile As HttpPostedFile = Context.Request.Files(Server.HtmlEncode(Context.Request.Files.AllKeys(0)))
    Dim inStream As System.IO.Stream = postFile.InputStream
    Dim fileData(postFile.ContentLength - 1) As Byte
    inStream.Read(fileData, 0, postFile.ContentLength)
    postFile.SaveAs(Server.MapPath("~\files\") & postFile.FileName)
    Return "http://www.yourdomain/files/" & postFile.FileName

  Catch ex As Exception
    return ex.Message
  End Try
End Function

کد B4A :

Public Sub Upload (EventName As String,BaseUrl As String,Dir As String,FileName As String) As Object
  Dim Retrofit As Amir_Retrofit
  
  Dim Builder As Amir_RetrofitBuilder
  Builder.Initialize.baseUrl(BaseUrl)
  Builder.addCache(False)
  Builder.addHeader(CreateMap("filename" : FileName))
  Retrofit.Initialize(Builder)

     Return _  
Retrofit.UploadFileWithPartMap(EventName,"UploadFiles", CreateMap() , _  
Retrofit.RB.WithPartFormData2("PartName",FileName, _  
Retrofit.RB.WithProgressRequestBodyObservable(EventName,"image/*",Dir,FileName,2048)))
End Sub

ــــــــــــــــــــــــــــــــــــــــ

این پست به مرور آپدیت خواهد شد... سوالات خود را در کامنت ارسال کنید ..

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری