Получаване на unsupportedEncodingException

Опитвам се да използвам PHP уеб услуга с Android. Установяване на връзка със сървъра чрез HttpClient. Когато изпълнявам кода, получавам HTML документ, вместо да получа JSON String, за да го анализирам допълнително. Не мога да разбера къде точно ми липсва. В URL, когато премахвам разширението .php, получавам null и когато добавям разширение .php, получавам само HTML Documnet. Кодът е даден по-долу,

public class ServerConnector {


    //HttpResponse response;
    public String postRegistrationData(UserRegistrationBean userRegistration){
        final String URL = "http://webserviceaddress.com/respondents/Efair/registrations/add.php";
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(URL);
        try{
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            Log.d("Name", userRegistration.getName());
            nameValuePairs.add(new BasicNameValuePair("name", userRegistration.getName()));
            Log.d("C_Name", userRegistration.getCompany_name());
            nameValuePairs.add(new BasicNameValuePair("company_name", userRegistration.getCompany_name()));
            Log.d("Email", userRegistration.getE_mail());
            nameValuePairs.add(new BasicNameValuePair("email", userRegistration.getE_mail()));
            Log.d("Product", userRegistration.getProd_of_interest());
            nameValuePairs.add(new BasicNameValuePair("product_of_interest", userRegistration.getProd_of_interest()));
            Log.d("Mobile ", userRegistration.getMobile_no());
            nameValuePairs.add(new BasicNameValuePair("mobile_no", userRegistration.getMobile_no()));
            nameValuePairs.add(new BasicNameValuePair("country", "India"));
            httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
            UrlEncodedFormEntity ent = new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8);
            httpPost.setEntity(ent);

            HttpResponse httpResponse = httpClient.execute(httpPost);
            InputStream inputStream = httpResponse.getEntity().getContent();
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            StringBuilder data = new StringBuilder();
            String bufferedStrChunk = null;
            while((bufferedStrChunk = bufferedReader.readLine()) != null){
                data.append(bufferedStrChunk);
            }
            System.out.println("Server Response - "+ data.toString());
            return data.toString();

        }catch(ClientProtocolException e){
            Log.d("RegistrationResponse", e.toString());
        }catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Log.d("RegistrationResponse", e.toString());
        }catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Log.d("RegistrationResponse", e.toString());
        }
        return null;


    }

}

Logcat : 01-21 14:01:40.637: I/System.out(1337): Server Response - Blog Errors LoginSign-Up Blog

Не е намерено

Error: The requested address '/respondents/Efair/registrations/add.php' was not found on this server.

Blog

Ето как извиквам горния метод.

registrationResponse = connector.postRegistrationData(userRegistrationBean);
Toast.makeText(getApplicationContext(), registrationResponse, Toast.LENGTH_SHORT).show();

userRegistrationBean тук не е нищо друго освен контейнер за данни.

Моля, помогнете за разрешаването на този проблем. Опитвам се от вчера, но не намирам правилния начин да го реша.


person techniqez    schedule 21.01.2014    source източник
comment
Моля, публикувайте своя logCat, за да можем да видим къде е хвърлено това изключение   -  person Scary Wombat    schedule 21.01.2014
comment
Как да покажа Logcat тук.. Много е голям   -  person techniqez    schedule 21.01.2014
comment
Просто покажете съответната част. Запазете го във файл, след което копирайте и поставете.   -  person Scary Wombat    schedule 21.01.2014
comment
Отговорът на сървъра е HTML документ при добавяне на разширение .php в URL, иначе не връща нищо. Html документът е достатъчно голям, за да го публикувате тук. Моля, помогнете   -  person techniqez    schedule 21.01.2014
comment
Не може да се постави тук... Някаква друга опция за публикуване на logcat тук...?   -  person techniqez    schedule 21.01.2014
comment
защо не можете да редактирате въпроса си и да публикувате съответната част от logCat?   -  person Scary Wombat    schedule 21.01.2014
comment
Добавих logcat и това е URL адресът, който използвам..... 203.92 .33.66/respondents/Efair/registrations/add.php   -  person techniqez    schedule 21.01.2014
comment
може ли някой да ми помогне по горепосочения проблем   -  person techniqez    schedule 21.01.2014
comment
Вие казвате, че получавате unsupportedEncodingException, но също така казвате, че получавате грешка, която не е намерена. Кое е? Ако не е намерено, тогава как, за бога, можем да помогнем да го поправим?   -  person Scary Wombat    schedule 22.01.2014
comment
@user2310289, сортирах unsupportedEncodingException сега. Проблемът ми е, че получих URL без разширение (но уеб услугата е разработена на php). Сега всеки път, когато премахвам разширение .php от URL адреса, нито получавам грешка, нито json низ, за ​​да го анализирам допълнително и когато добавям разширение .php, получавам съобщение, че не е намерено. същият URL адрес (без разширение), работещ добре с приложения за iOS, така че не мога да го считам за липсващ екип от задния край. Сериозно не мога да разбера този проблем. моля, помогнете ми за това. URL адресът, който използвам тук в моето приложение, вече съм публикувал в коментарите по-горе.   -  person techniqez    schedule 22.01.2014
comment
@user2310289 Получавам успешен код за състояние 200   -  person techniqez    schedule 22.01.2014


Отговори (1)


Винаги след POST проверка за кода на състоянието, както е показано по-долу.

проверка

HttpResponse httpResp = client.execute(response);
int code = httpResp.getStatusLine().getStatusCode();

Предполагам, че получавате грешка от серия 500.

person Scary Wombat    schedule 22.01.2014
comment
Не, не получавам грешка от серия 500, всъщност получавам код за състояние 200 за това. - person techniqez; 22.01.2014
comment
Но няма данни и няма грешка? опитайте да наблюдавате с wireshark. Може би сървърът не ви изпраща никакъв отговор? - person Scary Wombat; 22.01.2014
comment
Бихте ли ми казали как да реша този проблем. Сега получавам това съобщение в logcat 01-22 11:37:31.045: D/SntpClient(59): времето на заявката е неуспешно: java.net.SocketException: фамилията адреси не се поддържа от протокола. - person techniqez; 22.01.2014
comment
Реших проблема. Това беше проблем със сървъра. сървърът не изпращаше отговор за моята заявка. Благодаря за помощта. - person techniqez; 22.01.2014