Http get не извлекает содержимое в Android, но предоставляет содержимое в браузере

#android #android-asynctask #http-get

#Android #android-asynctask #http-get

Вопрос:

Я отправляю данные формы с использованием метода HTTP GET данные обратной связи после успешной отправки возвращаются со следующим содержимым:

 <?xml version="1.0" encoding="utf-8"?>
<result><![CDATA[Submit successfully]]></result>
  

Ниже приведен URL-адрес :

«feedbackurl»:

https://www.abcd.com/abcd_api/feedbacksubmit/create?nid=9123amp;showid=generalamp;cid=1amp;fullname=sagaamp;contactno=876431598amp;usermsg=Testing time amp;email=nxkdh@jcih.comamp;1402911256293

Приведенный выше URL-адрес предоставляет содержимое в формате xml, предоставленное в начале вопроса.

Код, который я использую для подключения к http,:

 String formSubmitURL = homeURL "feedbacksubmit/create?nid=9123amp;showid=" feedbackShowId "amp;cid=" URLEncoder.encode(cId, "UTF-8") "amp;fullname=" URLEncoder.encode(userName, "UTF-8") "amp;contactno=" URLEncoder.encode(phNO, "UTF-8") "amp;usermsg=" URLEncoder.encode(userMsg, "UTF-8") "amp;email=" URLEncoder.encode(userEmail, "UTF-8") "amp;" System.currentTimeMillis();
            connection = new HttpConnection(DataHanlder);               
            connection.create(HttpConnection.GET,formSubmitURL , null);
  

Отправка формы выполняется в асинхронной задаче. Проблема в том, что если я жестко закодирую URL-адрес «feedbackurl», я получаю ответ (формат xml) в обработчике данных.

Но если я передам его так, как я передаю в «formSubmitURL», в DataHandler ничего не извлекается. Но тот же URL-адрес, который отображается в браузере, выдает мне вывод xml в ответ.

Кто-нибудь может помочь мне найти основную причину проблемы или решение этой проблемы. Я знаю, что вопрос, опубликованный здесь, сбивает с толку, но я не могу объяснить это лучше, чем это.

Ниже приведен мой код обработчика данных:

 private Handler DataHanlder = new Handler()
{
    @SuppressWarnings("unused")
    @Override
    public void handleMessage(Message msg)
    {
        switch (msg.what)
        {
        case HttpConnection.DID_START:
            break;
        case HttpConnection.DID_SUCCEED:
            if(msg.obj!=null)
            {
                Log.i("FEEDBACK DATA FROM SERVER","" msg.obj.toString());
                resultFromServer = msg.obj.toString();
                if(resultFromServer.contains("successfully"))
                {
                    if (pd.isShowing())
                    {
                        pd.dismiss();
                    }
                    showAlertDialog(getActivity(), "Thank You!", "We appreciate your valuable feedback.", false);
                    //Toast.makeText(BaseActivity.baseActivityContext, "Thank You!n We appreciate your valuable feedback.", Toast.LENGTH_LONG).show();
                }
                else
                {
                    if (pd.isShowing())
                    {
                        pd.dismiss();
                    }
                    showAlertDialog(getActivity(), "FeedBack Data Submit", "Your Feedback data is not submitted.", false);
                    //Toast.makeText(BaseActivity.baseActivityContext, "Your Feedback data is not submitted.", Toast.LENGTH_LONG).show();
                }

            }
            break;
        case HttpConnection.DID_ERROR:
            if(pd!=null)
            {
                if (pd.isShowing())
                {
                    pd.dismiss();
                }
            }
            break;
        default:
            break;
        }
        super.handleMessage(msg);
    }
};  
  

Комментарии:

1. Если вы отправляете данные формы, лучше использовать HTTP POST вместо HTTP GET. Какова ценность homeURL ? Используете ли вы какие-либо сеансы? Если да, то как вы обрабатываете / передаете переменную сеанса? Также обратите внимание, что в xml amp; кодируется amp;amp; , это может вызвать некоторые проблемы с URL. Что вы подразумеваете под «ничего не извлекается»? Вы получаете и код ошибки? Отличается ли вывод от желаемого?

2. В другом месте проекта, где я использую тот же фрагмент кода для извлечения xml с сервера, я получаю содержимое xml. Тот же фрагмент кода не работает. Когда я открываю тот же URL-адрес в браузере, что и URL-адрес, который я зарегистрировал после кодирования, я получаю xml в браузере, но код не извлекает данные. Выполняя post, я не получаю ожидаемого ответа от сервера.