Browse Source

Non ascii char supported in header

master
preyearegmi 6 years ago
parent
commit
400b54e233
  1. BIN
      .idea/caches/build_file_checksums.ser
  2. 1
      app/build.gradle
  3. 7
      app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/model/autodebitaccountlisting/KeyValueData.java
  4. 11
      app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/model/autodebitaccountlisting/WebRequestModel.java
  5. 67
      app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/AutoDebitWebBrowserV2.java
  6. 2
      httpclient-release/build.gradle
  7. BIN
      httpclient-release/httpclient-release.aar

BIN
.idea/caches/build_file_checksums.ser

1
app/build.gradle

@ -132,6 +132,5 @@ dependencies {
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
implementation project(':SpinnerDatePickerLib-release')
implementation project(':httpclient-release')
}
apply plugin: 'com.google.gms.google-services'

7
app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/model/autodebitaccountlisting/KeyValueData.java

@ -6,6 +6,9 @@ import android.os.Parcelable;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class KeyValueData implements Parcelable {
@SerializedName("Key")
@ -25,10 +28,10 @@ public class KeyValueData implements Parcelable {
this.key = key;
}
public String getValue() {
public String getValue() throws UnsupportedEncodingException {
if(value==null)
value="";
return value.trim();
return URLEncoder.encode(value.trim(),"UTF-8");
}
public void setValue(String value) {

11
app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/model/autodebitaccountlisting/WebRequestModel.java

@ -42,11 +42,16 @@ public class WebRequestModel implements Parcelable {
return null;
Map<String, String> mappedHeader = new HashMap<>();
for (KeyValueData item : headerData) {
Log.d("WEBREQUESTMODEL", item.getKey() + " : " + item.getValue());
mappedHeader.put(item.getKey(), item.getValue());
try {
for (KeyValueData item : headerData) {
Log.d("WEBREQUESTMODEL", item.getKey() + " : " + item.getValue());
mappedHeader.put(item.getKey(), item.getValue());
}
}
catch(Exception e)
{
}
return mappedHeader;
}

67
app/src/main/java/com/gmeremit/online/gmeremittance_native/autodebitV2/view/AutoDebitWebBrowserV2.java

@ -1,9 +1,6 @@
package com.gmeremit.online.gmeremittance_native.autodebitV2.view;
import android.content.Context;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
@ -11,23 +8,9 @@ import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccou
import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccountlisting.WebRequestModel;
import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponse;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponseV2;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericResponseDataModel;
import com.gmeremit.online.gmeremittance_native.utils.https.HTTPConstants;
import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2;
import com.gmeremit.online.gmeremittance_native.utils.https.MessageResponseDataModel;
import com.gmeremit.online.gmeremittance_native.webbrowserV2.WebBrowserV2Activity;
import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundRelatedMetaDataModel;
import com.google.gson.reflect.TypeToken;
import com.preyearegmi.utils.httpclient.HTTPClient;
import com.preyearegmi.utils.httpclient.HTTPResponse;
import com.preyearegmi.utils.httpclient.METHODTYPE;
import com.preyearegmi.utils.httpclient.abs.NetworkTask;
import com.preyearegmi.utils.httpclient.abs.RequestCompleteCallback;
import java.lang.reflect.Type;
import io.reactivex.Scheduler;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers;
@ -47,17 +30,12 @@ public class AutoDebitWebBrowserV2 extends WebBrowserV2Activity {
this.webRequestModel = webRequestModel;
this.compositeDisposable = new CompositeDisposable();
this.webInterface=new WebAppInterface(AutoDebitWebBrowserV2.this);
// authenticateService();
authenticateServiceV2();
authenticateService();
}
}
/**
* Okhttp don't support non-ASCII Headers
* See error : https://github.com/square/okhttp/issues/2016
*/
@Deprecated
private void authenticateService() {
this.compositeDisposable.add(
HttpClientV2.getInstance().postDataForAddingAutoDebitAccount(webRequestModel.getUrl(), webRequestModel.getHeaderAsMapData())
@ -69,48 +47,7 @@ public class AutoDebitWebBrowserV2 extends WebBrowserV2Activity {
.subscribeWith(new AutoDebitAddRequestObserver()));
}
private void authenticateServiceV2()
{
showProgressBar(true, "Authenticating...");
NetworkTask authenticationTask= HTTPClient.request(webRequestModel.getUrl(), METHODTYPE.GET, webRequestModel.getHeaderAsMapData(), null, new RequestCompleteCallback() {
@Override
public void onSuccess(HTTPResponse httpResponse) {
showProgressBar(false, "");
try {
Type type = TypeToken.getParameterized(AutoDebitAddSeriveAuthenticationServiceModel.class).getType();
AutoDebitAddSeriveAuthenticationServiceModel data = null;
data = HttpClientV2.getDeserializer().fromJson(httpResponse.getResponseBody(), type);
updateTitleInBrowser(webRequestModel.getWebTitle() != null && webRequestModel.getWebTitle().length() > 0 ? webRequestModel.getWebTitle() : "");
String url = data.getAuthenticatedUrl();
if (url == null || url.length() < 1)
showPopUpMessage("Invalid url", CustomAlertDialog.AlertType.FAILED, alertType -> finish());
else {
webView.addJavascriptInterface(webInterface, WEB_INTERFACE_NAME);
webView.loadUrl(data.getAuthenticatedUrl());
}
}
catch (Exception e)
{
showPopUpMessage(e.getMessage(), CustomAlertDialog.AlertType.FAILED, alertType -> finish());
}
}
@Override
public void onFailed(int i) {
showProgressBar(false, "");
String message= HTTPConstants.getErrorMessageFromCode(i);
showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> finish());
}
@Override
public void onConnectionNotEstablished(String s) {
showProgressBar(false, "");
showPopUpMessage(s, CustomAlertDialog.AlertType.FAILED, alertType -> finish());
}
});
HTTPClient.enqueue(authenticationTask);
}
@Override
public void onBackPressed() {

2
httpclient-release/build.gradle

@ -1,2 +0,0 @@
configurations.maybeCreate("default")
artifacts.add("default", file('httpclient-release.aar'))

BIN
httpclient-release/httpclient-release.aar

Loading…
Cancel
Save