2016-03-02 3 views
11

My Api принимает приложение Content-Type/json в качестве заголовков. Я установил Header отлично, как указано в «Дополнениях».Retrofit-2 Content-Type Issue

@Headers("Content-Type: application/json") 
@POST("user/classes") 
Call<playlist> addToPlaylist(@Body PlaylistParm parm); 

Но запрос журнала он Возвратившись Content-Type в формате TXT/html.So, как я должен решить эту проблему? Это апи отлично работает в POSTMAN enter image description here

enter image description here

+0

Я не думаю, что это проблема с Модернизированный. Обычно веб-сайты возвращают результаты в txt/html. Вы должны запросить api с чем-то вроде '? Format = json'. Вы можете просто проверить это, открыв api url непосредственно в браузере. –

+0

Пожалуйста, отправьте запрос html и запрос почтальона. – Christopher

+0

@Christopher обновил вопрос по почтовому запросу –

ответ

2

Try:

@POST("user/classes") 
Call<playlist> addToPlaylist(
@Header("Content-Type") String contentType, 
@Body PlaylistParm parm); 
8

вы можете попробовать один в ниже моих решений:

@POST("user/classes") 
Call<playlist> addToPlaylist(@Header("Content-Type") String content_type, @Body PlaylistParm parm); 

затем вызвать

mAPI.addToPlayList("application/json", playListParam); 

Или

Создать HttpClient объект

OkHttpClient httpClient = new OkHttpClient(); 
     httpClient.networkInterceptors().add(new Interceptor() { 
      @Override 
      public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { 
       Request.Builder requestBuilder = chain.request().newBuilder(); 
       requestBuilder.header("Content-Type", "application/json"); 
       return chain.proceed(requestBuilder.build()); 
      } 
     }); 

Затем добавить дооснастить объект

Retrofit retrofit = new Retrofit.Builder().baseUrl(BASE_URL).client(httpClient).build(); 
+0

Спасибо за ваш ответ. Я пытался запросить оба способа, но не работал для меня :( –

+0

Можете ли вы предоставить мне данные для запроса, если вы не возражаете –

+0

https: //www.groopiesdev.ком/API/v1/пользователь/классы авторизации Basic ZXlKbGVIQWlPakUwTlRjd01EVTVNRE1zSW1Gc1p5STZJa2hUTWpVMklpd2lhV0YwSWpveE5EVTJPVEU1TlRBemZRLmV5SnBaQ0k2TnpKOS5wbExhZmNxVVBoVGZpV2prLXFDREQ2eXQwQ0tSdlc0R0c1eHJ2enRHNXBnOjE = Content-Type приложения/JSON { "USERID": 72, "Classid": 38} –

0

может быть, вам нужно '/', и лучше не менять Content-Type с помощью самостоятельно, вы , так же, как это:

@POST("user/classes/") 
Call<playlist> addToPlaylist(@Body PlaylistParm parm); 
4

Попробуйте для Модернизированный 1,9 и 2,0. Для типа содержимого Json.

@Headers({"Accept: application/json"}) 
@POST("user/classes") 
Call<playlist> addToPlaylist(@Body PlaylistParm parm); 

Вы можете добавить много больше т.е.

@Headers({ 
     "Accept: application/json", 
     "User-Agent: Your-App-Name", 
     "Cache-Control: max-age=640000" 
    }) 
Смежные вопросы