Страница 1 из 1

Не работает post запрос

Добавлено: 03 янв 2014, 19:44
KiberQ
Нагуглил пример в интернете:

[syntax=java] public void HttpPost() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.somesite.com/somescript.php");

try {
//Добавляем свои данные
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("id", "12345"));
nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

// Выполняем HTTP Post Request
HttpResponse response = httpclient.execute(httppost);

} catch (ClientProtocolException e) {
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_LONG).show();
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_LONG).show();
}
}[/syntax]

Постоянно нарываюсь на "catch", когда у других, судя по комментариям, всё работает. Что я делаю не так?

Re: Не работает post запрос

Добавлено: 03 янв 2014, 19:56
altwin
какое исключение срабатывает, не пробовали делать printStackTrace? Вы уверенны, что http://www.somesite.com/somescript.php - принимает POST запросы?


P.S. я бы предпочел использовать:
[syntax=java]
/**
* Send an HTTP(s) request with POST parameters.
*
* @param parameters
* @param url
* @throws UnsupportedEncodingException
* @throws IOException
* @throws KeyManagementException
* @throws NoSuchAlgorithmException
*/
static void doPost(Map<?, ?> parameters, URL url)
throws UnsupportedEncodingException, IOException,
KeyManagementException, NoSuchAlgorithmException {

URLConnection cnx = getConnection(url);

// Construct data
StringBuilder dataBfr = new StringBuilder();
Iterator<?> iKeys = parameters.keySet().iterator();
while (iKeys.hasNext()) {
if (dataBfr.length() != 0) {
dataBfr.append('&');
}
String key = (String) iKeys.next();
dataBfr.append(URLEncoder.encode(key, "UTF-8")).append('=')
.append(
URLEncoder.encode((String) parameters.get(key),
"UTF-8"));
}
// POST data
cnx.setDoOutput(true);

OutputStreamWriter wr = new OutputStreamWriter(cnx
.getOutputStream());
Log.d(LOG_TAG, "Posting crash report data");
wr.write(dataBfr.toString());
wr.flush();
wr.close();

Log.d(LOG_TAG, "Reading response");
BufferedReader rd = new BufferedReader(new InputStreamReader(cnx
.getInputStream()));

String line;
int linecount = 0;
while ((line = rd.readLine()) != null) {
linecount++;
if(linecount <= 2) {
Log.d(LOG_TAG, line);
}
}
rd.close();
}
[/syntax]

Re: Не работает post запрос

Добавлено: 03 янв 2014, 20:01
anber