簡體   English   中英

為Rest客戶端設置Json內容類型

[英]Setting Json content-type for Rest client

我正在使用loopj的AsyncHttpClient for Android,以便我可以與我創建的一個安靜的Web應用程序進行交互。 我使用Postman測試了一個POST請求,它工作正常。

但是,在Android中,我很難做一個帖子請求,但內容類型總是設置為text / html ..

    RequestParams params = new RequestParams();
    params.setUseJsonStreamer(true);
    params.put("email", "android@tester.com");
    StringEntity se = null;
    try {
        se = new StringEntity(params.toString());
        se.setContentType("application/json");
    } catch (UnsupportedEncodingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    Header headers[] = {};
    if(getActivity() != null){
    RestClient.postWithContentType(getActivity(), "contacts", se, "application/json", new AsyncHttpResponseHandler() {
        //onSuccess and onFailure methods ommitted

    });

它一直在失敗,我在logcat中收到此消息:由於HttpEntity設置了內容類型,因此將忽略Passed contentType。

所以,我試圖改變這個,

 public static void postWithContentType(Context context,String url,StringEntity s,String contentType, AsyncHttpResponseHandler responseHandler){
      s.setContentType("application/json");
      client.post(context, getAbsoluteUrl(url), s, contentType, responseHandler); 
  }

然而,我仍然得到相同的信息,這真的令人沮喪,而且我一直試圖弄清楚多年! 如果有人知道如何設置內容類型 - 將非常感謝,謝謝!

我有同樣的問題。

我無法理解哪個會影響它,因為它幾天前確實有效。 我只是手動添加標題,它的工作原理。

只需添加RestClient.addHeader("Content-Type", "application/json"); 在您的RestClient.postWithContentType(...)代碼之上。

RequestParams requestParams = new RequestParams();
asyncHttpClient.addHeader("Accept", "text/json");
asyncHttpClient.addHeader("content-type", "application/json");
asyncHttpClient.post(context, getAbsoluteUrl(url), requestParams, new AsyncHttpResponseHandler() {
   @Override
   public void onSuccess(int statusCode, String content) {
       super.onSuccess(content
       // Ur logic
   }

   @Override
   public void onFailure(Throwable error, String content) {
       super.onFailure(error, content);
       // Ur logic
   }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM