Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
org.apache.http.client.utils.URLEncodedUtils在Android 9.0上解析文本不正确_Android_Apache_Urlencode_Android 9.0 Pie - Fatal编程技术网

org.apache.http.client.utils.URLEncodedUtils在Android 9.0上解析文本不正确

org.apache.http.client.utils.URLEncodedUtils在Android 9.0上解析文本不正确,android,apache,urlencode,android-9.0-pie,Android,Apache,Urlencode,Android 9.0 Pie,Android Studio 3.4版 app/build.gradle: android { compileSdkVersion 28 defaultConfig { minSdkVersion 18 targetSdkVersion 28 versionCode 427 versionName "2.1.427" testInstrumentationRunner "android.support

Android Studio 3.4版

app/build.gradle:

android {
    compileSdkVersion 28
    defaultConfig {
        minSdkVersion 18
        targetSdkVersion 28
        versionCode 427
        versionName "2.1.427"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"


def AAVersion = '4.5.2'

dependencies {
    annotationProcessor "org.androidannotations:androidannotations:$AAVersion"
    annotationProcessor "org.androidannotations:ormlite:$AAVersion"

    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support:animated-vector-drawable:28.0.0'
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.android.support:customtabs:28.0.0'
    implementation 'com.android.support:exifinterface:28.0.0'
    implementation 'com.android.support:support-media-compat:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'

    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.7'
    implementation 'com.google.android.gms:play-services-gcm:16.0.0'
    implementation 'com.google.code.gson:gson:2.8.2'
    implementation 'com.j256.ormlite:ormlite-android:5.1'
    implementation 'commons-codec:commons-codec:1.11'
    implementation 'commons-io:commons-io:2.6'
    implementation 'org.apache.commons:commons-lang3:3.8.1'
    implementation 'org.apache.httpcomponents:httpclient:4.3.6'
    implementation "org.androidannotations:androidannotations-api:$AAVersion"
    implementation "org.androidannotations:ormlite-api:$AAVersion"


    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
}


import org.apache.http.NameValuePair;
import org.apache.http.client.utils.URLEncodedUtils;

private static NotificationInvoice getNotificationInvoice(NotificationFO notification) {
        String notificationText = notification.getNotificationText();
        String payload = "";
        NotificationType type = null;
        Log.d(TAG, "check_notificationText:\n" + notificationText);
        List<NameValuePair> params = URLEncodedUtils.parse(new URI(notificationText), "UTF-8");
        Log.d(TAG, "check_params(" + params.size() + "):\n" + params);
}
如您所见,参数“
有效载荷”
”=
11111;0000000;5.55;2019-05-16;2019-05-16;ecb6f683-63b3-4efd-b8c3-0877F1AE8D

很好,这是正确的

但是在安卓9.0上,“
notificationText
未成功解析

check_notificationText:
http://11.11.11.11:54401/notify?receiver=22222222222222&system=factura_mobile&device_type=android&type=invoice&payload=3c55ba74-a85e-401b-8c1c-40ca83947768;0000000;5.55;2019-05-16;2019-05-16;1a87fb32-4543-4111-89a4-e150a7f71168

check_params(10):
[receiver=22222222222222, system=factura_mobile, device_type=android, type=invoice, payload=3c55ba74-a85e-401b-8c1c-40ca83947768, 0000000, 5.55, 2019-05-16, 2019-05-16, 1a87fb32-4543-4111-89a4-e150a7f71168]
getNotificationInvoice_FOUND_PAYLOAD -> set_to_payload_param.getValue = 3c55ba74-a85e-401b-8c1c-40ca83947768
如您所见,参数“
有效载荷”
”=
3c55ba74-a85e-401b-8c1c-40ca83947768
,但必须是

3c55ba74-a85e-401b-8c1c-40ca83947768;0000000;5.55;2019-05-16;2019-05-16;1a87fb32-4543-4111-89a4-e150a7f71168

为什么Android 9.0中的解析文本不正确?

尝试使用Java内置方法Java.net.URLEncoder

Android API 22中不推荐使用URLEncodedUtils+

List<NameValuePair> params = URLEncoder.encode(notificationText, "UTF-8");
List params=urlcoder.encode(notificationText,“UTF-8”);

不兼容的类型。必需:java.util.List找到:java.lang.String
List<NameValuePair> params = URLEncoder.encode(notificationText, "UTF-8");