1

으로 설정했기 때문에 전달 된 contentType이 무시됩니다. android httpclient (loopj)를 사용하여 일부 데이터를 게시하려고합니다. 본문에 일부 json 데이터를 추가하고 요청 헤더를 설정합니다. 그러나 AsyncHttpClient : Passed contentType HttpEntity가 내용 유형을 설정하기 때문에 무시됩니다. 어느 누구도이 문제를 해결하는 방법을 알고 있습니까?AsyncHttpClient : HttpEntity가 콘텐츠 유형을

public static void post(Activity context,String url, RequestParams params, AsyncHttpResponseHandler responseHandler) { 
     try { 
      JSONObject jsonParams = new JSONObject(); 
      JSONObject innerObject = new JSONObject(); 
      innerObject.put("Name", "@MODE"); 
      innerObject.put("ParamType", "8"); 
      innerObject.put("Value", "0"); 
      JSONArray ar = new JSONArray(); 
      ar.put(innerObject); 
      try { 
       jsonParams.put("ProcName", "Core.MENUS_SPR"); 
       jsonParams.put("dbparams", ar); 

       Log.i("jsonParams.toString()",""+jsonParams.toString()); 

       StringEntity se = null; 
       try { 
        se = new StringEntity(jsonParams.toString()); 


       } catch (UnsupportedEncodingException e) { 
        e.printStackTrace(); 
        return; 
       } 
        client.post(context, (url), se, "application/json", responseHandler); 


      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

    } 

답변

6

게시하기 전에 글을 쓰십시오. 일부 엔티티를 사용하면

se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); 

이유는 포스트 및 사용 엔티티의 내용에 주어진 콘텐츠 형식을 무시합니다. 그래서 위의 행은 문제를 해결할 것입니다.


나는 소스 코드에 파고 post(..)에 콘텐츠 형식의 패스는 무시됩니다 것을 발견하고 로그는 것이 오류가 존재하는 경우. ContentType을 통과

는 HttpEntity는

내용 유형

을 설정하기 때문에 무시됩니다하지만 당신은 그것이 작동됩니다 엔티티에 콘텐츠 형식을 제공하면 걱정하지 마십시오. 이 오류를 제거하려면 post(..)의 내용 유형에 null을 대신 전달할 수 있습니다.

AsyncHttpClient.java에서 일부 코드 :

if (contentType != null) { 
      if (uriRequest instanceof HttpEntityEnclosingRequestBase && ((HttpEntityEnclosingRequestBase) uriRequest).getEntity() != null) { 
       Log.w(LOG_TAG, "Passed contentType will be ignored because HttpEntity sets content type"); 
      } else { 
       uriRequest.setHeader(HEADER_CONTENT_TYPE, contentType); 
      } 
     } 
+0

없음 운 아직도 AsyncHttpClient를 얻을 : 통과 contentType이 무시됩니다 HttpEntity 콘텐츠 유형 – playmaker420

+0

같은 문제가 다시 며칠을 요청했다 설정하기 때문에 http://stackoverflow.com/a/26425401/2274724 –

+0

나중에 시도해 보았습니다. 행운은 아직 없습니다 – playmaker420