URL запроса не может быть получен? - PullRequest
0 голосов
/ 22 марта 2011

У меня есть значение для отправки в PHP от Android с HttpPost, но я получаю ответ "URL-адрес запроса не может быть получен"

это мой код

try {
            HttpClient client = new DefaultHttpClient();
            HttpPost post = new HttpPost(link);
            post.setEntity(new UrlEncodedFormEntity(sendValue));
            HttpResponse response = client.execute(post);
            Toast.makeText(this, response.getStatusLine().toString(),
                    Toast.LENGTH_LONG).show();
            if (response.getStatusLine().toString().contains("200")) {
                Toast.makeText(this, "Komentar berhasil dibuat",
                        Toast.LENGTH_LONG).show();
                finish();
            }
            else{
                Toast.makeText(this, "Koneksi server bermasalah",
                        Toast.LENGTH_LONG).show();
            }
        } catch (Exception e) {
            Log.e("log_tag", "Error connection" + e.toString());
        }

, но если я удалю "пост.setEntity (new UrlEncodedFormEntity (sendValue)); "я могу подключиться к файлу PHP ..

как это решить?

РЕДАКТИРОВАТЬ
Я установил вот так

private List<NameValuePair> sendValue = new ArrayList<NameValuePair>(4);
sendValue.add(new BasicNameValuePair("link", urlShare.toString()));
sendValue.add(new BasicNameValuePair("message", postComment.getText().toString()));
sendValue.add(new BasicNameValuePair("name", nameText.getText().toString()));
sendValue.add(new BasicNameValuePair("email", emailText.getText().toString()));

Ответы [ 2 ]

0 голосов
/ 23 марта 2011

Как сказал dave.c, скорее всего, ваша проблема в кодировке. Попробуйте

String urlShareStr = URLEncoder.encode(urlShare.toString());
sendValue.add(new BasicNameValuePair("link", urlShareStr);

и то же самое для остальных. Я разделил на две команды только для того, чтобы легче было читать. Вы можете сжать это до

sendValue.add(new BasicNameValuePair("link", URLEncoder.encode(urlShare.toString());

0 голосов
/ 22 марта 2011

Убедитесь, что значения, которые вы вводите в sendValue, правильно закодированы.Вам также может потребоваться установить тип содержимого для объекта post:

post.setHeader("Content-Type","application/x-www-form-urlencoded");
...