복붙노트

[SPRING] Android 웹 서비스 호출에서 HTTP 406 가져 오기

SPRING

Android 웹 서비스 호출에서 HTTP 406 가져 오기

내가 안드로이드 application.Can을 통해 나머지는 웹 서비스를 호출하면 406 얻을거야이 코드에서 오류가 무엇인지 나에게 제안하고 왜 내가이 오류를지고 있어요 ??

@RequestMapping(value="/mainreservationChartPost", method = RequestMethod.POST)
    public @ResponseBody ModelMap getMRChartDataPOST(@ModelAttribute ("ReservationSummaryRQDTO") ReservationSummaryRQDTO search){

        ReservationSummaryDTO returnDataDTO = new ReservationSummaryDTO();

        MainReservationChartWSImpl wsImpl = MRWSUtil.getInstance().getWS_ServicePort();

        search.setHotelCode("BBH");
        search.setReportDate(toXmlDateGMT(new Date()));

        returnDataDTO = wsImpl.getReservationSummary(search);

        ModelMap model = new ModelMap();
        model.put("reservations", returnDataDTO);

        return model;

    }

Android 코드

public static String POST(String url, ArrayList<NameValuePair> parameter)
            throws Exception {
        BufferedReader in = null;
        try {

            DefaultHttpClient httpclient = new DefaultHttpClient();

            HttpPost httpost = new HttpPost(url);
            httpost.setHeader("Accept", "application*/*");
            httpost.setHeader("Content-type",
                    "application/x-www-form-urlencoded");
            httpost.setEntity(new UrlEncodedFormEntity(parameter, "utf-8"));
            HttpResponse response = httpclient.execute(httpost);

            in = new BufferedReader(new InputStreamReader(response.getEntity()
                    .getContent()));
            StringBuffer sb = new StringBuffer("");
            String line = "";
            String NL = System.getProperty("line.separator");
            while ((line = in.readLine()) != null) {
                sb.append(line + NL);
            }
            in.close();
            String result = sb.toString();
            return result;

        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }



@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("hotelCode","BBH"));
        //nameValuePairs.add(new BasicNameValuePair("reportDate","10-MAY-2013"));


     //String response=hcc.executeHttpPost("http://10.2.241.137/ua_dat/rnd/senddata.php", nameValuePairs);
         try { 
            String response=HttpCustomClient.POST("http://10.2.241.33/MRChartService/mainreservationChart.html", nameValuePairs);



        } catch (Exception e) {
            Log.d("error", e.getMessage().toString()); 
        }




    }

어느 누구든지이 문제를 해결할 수있는 방법을 제안 할 수 있습니다 ..? 내가 406 오류가 있기 때문에이 코드의 모든 오류 ...

해결법

  1. ==============================

    1.406은 요청의 승인 헤더에서 요청되는 데이터 유형과 서버가 리턴 한 유형이 일치하지 않음을 의미합니다. 허용 된 유형을 변경하거나 리턴 마임 유형을 변경하십시오.

    406은 요청의 승인 헤더에서 요청되는 데이터 유형과 서버가 리턴 한 유형이 일치하지 않음을 의미합니다. 허용 된 유형을 변경하거나 리턴 마임 유형을 변경하십시오.

  2. ==============================

    2.그 오류는 용납되지 않습니다.

    그 오류는 용납되지 않습니다.

    말 그대로.

    여기에 몇 가지 문서가 있습니다 :

    이는 일반적으로 서비스가 사용자에게 인식 할 수없는 형식으로 물건을 다시 보냈음을 의미합니다. 틀린 종류의 데이터 일 수도 있고 헤더가 엉망이 될 수도 있습니다. WireShark와 같은 패킷 스니퍼를 사용하여 무엇이 다시 전송되는지 확인해야합니다. 또한 콘텐츠 유형을 지정하기 만하면됩니다.

    웹 서비스 호출을하고 있고 패킷 스니퍼를 한번도 사용한 적이 없다면 어떻게하는지 알아내는 것이 좋습니다.

  3. ==============================

    3.406은 요청 헤더를 받아 들일 때 응답 할 수 없을 때 서버에 의해 반환됩니다 (즉, XML 만 원한다는 Accept 헤더가 있음). 서버의 응답으로 Accept 헤더를 확인하고 적절하게 데이터를 전송하십시오.

    406은 요청 헤더를 받아 들일 때 응답 할 수 없을 때 서버에 의해 반환됩니다 (즉, XML 만 원한다는 Accept 헤더가 있음). 서버의 응답으로 Accept 헤더를 확인하고 적절하게 데이터를 전송하십시오.

  4. from https://stackoverflow.com/questions/16536171/getting-http-406-in-android-webservice-call by cc-by-sa and MIT license