Hovhannes
07/16/2021, 8:52 AMfun reqBody(): RequestBody {
val clientIdentifier = binding.edittxtClientIdentifier.text.toString().trim()
val device = binding.edittxtDeviceType.text.toString().trim()
val lang = binding.edittxtLang.text.toString().trim()
val partn = binding.edittxtPartnerId.text.toString().trim()
val pass = binding.editTextTextPassword.text.toString().trim()
viewModel.login(
clientIdentifier,
Integer.parseInt(device),
lang,
Integer.parseInt(partn),
pass
)
val rootObject = JSONObject()
rootObject.put("ClientIdentifier", clientIdentifier)
rootObject.put("DeviceType", device)
rootObject.put("LanguageId", lang)
rootObject.put("PartnerId", partn)
rootObject.put("Password", pass)
encrypt(rootObject.toString(), publicKey)
val encrypted = encrypt(rootObject.toString(), publicKey)
return RequestBody.create(
"application/json; charset=utf-8".toMediaTypeOrNull(),
"{\r\n \"Data\":\"$encrypted\"\r\n}"
)
}
In another class
private fun <Request> getRetrofitClient(authenticator: Authenticator? = null): OkHttpClient {
return OkHttpClient.Builder()
.addInterceptor { chain ->
chain.proceed(chain.request().newBuilder().also {
it.addHeader("Accept", "application/json")
it.method("POST", LoginFragment().reqBody()) //Error shows on this
}.build())
}.also { client ->
authenticator?.let { client.authenticator(it) }
if (BuildConfig.DEBUG) {
val logging = HttpLoggingInterceptor()
logging.setLevel(HttpLoggingInterceptor.Level.BODY)
client.addInterceptor(logging)
}
}.build()
}
Vibhanshu Tiwari
07/16/2021, 3:00 PMHovhannes
07/19/2021, 6:59 AM@AndroidEntryPoint
class LoginFragment : Fragment(R.layout.fragment_login) {
private lateinit var binding: FragmentLoginBinding
private val viewModel:AuthViewModel by viewModels()
@RequiresApi(Build.VERSION_CODES.O)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
binding = FragmentLoginBinding.bind(view)
......
Vibhanshu Tiwari
07/19/2021, 7:53 AMHovhannes
07/19/2021, 8:02 AMfun <Request> getRetrofitClient(authenticator: Authenticator? = null): OkHttpClient {
val clientId = binding.edittxtClientIdentifier.text.toString().trim() //Error shows on this
Log.d("getRetrofitClient", "clientId:\t $clientId")
return OkHttpClient.Builder()
.addInterceptor { chain ->
chain.proceed(chain.request().newBuilder().also {
it.addHeader("Accept", "application/json")
}.build())
}.also { client ->
authenticator?.let { client.authenticator(it) }
if (BuildConfig.DEBUG) {
val logging = HttpLoggingInterceptor()
logging.setLevel(HttpLoggingInterceptor.Level.BODY)
client.addInterceptor(logging)
}
}.build()
}Vibhanshu Tiwari
07/19/2021, 8:16 AMHovhannes
07/19/2021, 8:51 AMVibhanshu Tiwari
07/19/2021, 9:08 AMHovhannes
07/19/2021, 10:21 AMVibhanshu Tiwari
07/19/2021, 2:48 PM