2016-12-02 1 views
0

tatsächliche Anfrage istProblem mit Retrofit: 2.1.0. Es Wandelt & und = Operator Unicode-String

{ "Feedback": "android & Test", "Form": "Feedback", "loginId": "xyz123"}

Aber Retrofitwandelt & Betreiber

Unicode

{ "Feedback": "android \ u0026 Prüfung", "Form": "Feedback", "loginId": "xyz123"}

Bitte helfen Sie mir, dieses Problem zu lösen.

public interface APIView { 
@POST(URLS.FEED_BACK) 
Call<FeedbackResponse> saveFeedback(@Body FeedbackRequest request); 
} 

public class WebServices { 
private static WebServices instance = null; 
Gson gson; 
final OkHttpClient okHttpClient; 
Retrofit retrofit; 
APIView service; 

private WebServices() { 
    this.gson = new GsonBuilder().setDateFormat("yyyy-MM-  dd'T'HH:mm:ssZ").create(); 
    this.okHttpClient = new Builder().readTimeout(60, TimeUnit.SECONDS).connectTimeout(60, TimeUnit.SECONDS).build(); 
    this.retrofit = new  Retrofit.Builder().baseUrl(URLS.BASE_URL).addConverterFactory(GsonConverterFacto  ry.create(this.gson)).client(this.okHttpClient).build(); 
    this.service = (APIView) this.retrofit.create(APIView.class); 
    } 

    public static WebServices getInstance() { 
    if (instance == null) { 
     instance = new WebServices(); 
    } 
    return instance; 
    } 

    public APIView getService() { 
    return this.service; 
    } 
} 
+0

Bitte fügen Sie Ihre Retrofit-Schnittstelle und alle Interzeptoren, die Sie haben, ein, damit wir Ihnen helfen können. – iagreen

+0

hey @iagreen hast du mein Problem gesehen – user3295685

Antwort

0

Sie müssen html deaktivieren in Ihrem gson Instanz zu entkommen.

this.gson = new GsonBuilder().disableHtmlEscaping().setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").create(); 
0

Verwenden ähnlich

{"feedback":"android &amp; testing","form":"Feedback","loginId":"xyz123"} 
0

ich hatte das gleiche Problem, ich löste ihn die Anforderung an UrlEncoded Form umzuwandeln und dann UrlEncoded Anfrage an die tatsächlichen Anforderung in einer Server-Seite zurückzuverwandeln:

String urlEncoded = ""; 
    try{ 
     urlEncoded = URLEncoder.encode(yourAwesomeRequest); 
    } 
    catch (Exception e){ 
     //OMG 
    } 

Und auf Server-Seite, wandeln Sie urlEncoded zu der tatsächlichen Anfrage.

Verwandte Themen